it-swarm.com.de

Informationen zur Anmeldung über REST API

Ich habe das Artikel gelesen. Ich möchte wissen, wie die Anmeldung mit der API REST in Drupal 8 funktioniert. Wenn sich Benutzer anmelden, überprüft Drupal standardmäßig den Benutzernamen und das Kennwort. Nach der Anmeldung hat der Browser ein Cookie für die erstellte Sitzung.

enter image description here

Wie kann mit der API REST _ Drupal 8 Benutzer beim ersten Anmelden überprüfen? Wie wird nach dem Login das aktuelle Login überprüft?

7
Jonh

Melden Sie sich bei Drupal an, indem Sie die Benutzeranmeldeinformationen POSTEN. Stellen Sie sicher, dass Sie den Header "Content-Type" festgelegt haben. Dadurch wird die Sitzung des Benutzers gestartet.

POST-URL:

/user/login?_format=json

Header:

Content-Type: application/json

Post-Daten:

{
  "name": "username",
  "pass": "password"
}

Erfolgreiche Antwort:

{
  "current_user":{
    "uid": "1",
    "roles":[
      "authenticated",
      "administrator"
    ],
    "name": "username"
  },
  "csrf_token":   "asda09820380_2238019280dk09n908asjdlkajdaoa",
  "logout_token": "asdasd09a8sdaslkdasl-asdasdklsajdlkasdjlksj"
}

Verwenden Sie das CSRF-Token in nachfolgenden GET-, POST-, PATCH-, DELETE- usw. Anforderungen, indem Sie den Header festlegen:

X-CSRF-Token: asda09820380_2238019280dk09n908asjdlkajdaoa

Verwenden Sie zum Abmelden das Abmeldetoken in einer POST -Anforderung. Damit wird die Sitzung des Benutzers beendet.

/user/logout?_format=json&token=asdasd09a8sdaslkdasl-asdasdklsajdlkasdjlksj

Anmeldestatus erhalten:

/user/login_status?_format=json

Bekomme Token:

/rest/session/token

Verweise:

12
imclean

Drupal Core-Version: 8.x-4.x

Sie müssen als erstes den Benutzeranmeldedienst aktivieren. Dies kann auf so viele Arten erfolgen, dass ich lieber das Modul REST UI verwende.

Gehen Sie zu /admin/config/services/rest und aktivieren Sie Benutzer Restressource.

Nach der Aktivierung können Sie zu /admin/config/services/rest/resource/entity% 3Auser/edit gehen, indem Sie auf Edit klicken ) neben der Ressource User . Stellen Sie sicher, dass die Methode [~ # ~] get [~ # ~] aktiviert ist.

(enter image description here

Nachdem Sie alles eingerichtet haben, können Sie den Dienst verwenden, indem Sie diesen Befehl im Terminal ausführen oder eine beliebige Anwendung für Curl-Anforderungen verwenden, z. B.: Postman und Restlet Clients.

[~ # ~] Anmerkung [~ # ~] : CSRF-Token erhalten Sie von: /rest/session/token

curl -i -L -X POST \
  -H "Content-Type:application/json" \
  -H "Accept:application/json" \
  -H "X-CSRF-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
  -d \
     '{
       "name": "my_username",
       "pass": "my_password"
     }' \
'http://SITE-URL/user/login?_format=json'

Die Rückgabeobjekte sind wie folgt:

[~ # ~] Erfolg [~ # ~]:

{
  "current_user": {
  "uid": "1",
    "roles": [
      "authenticated"
    ],
    "name": "Admin"
  },
  "csrf_token": "bbbbbbbbbbbbbbbbbbbbbbbbbb",
  "logout_token": "ccccccccccccccccccccccccc"
}

[~ # ~] Fehler [~ # ~]:

{
  "message":"Sorry, unrecognized username or password."
}
1