この記事を読んでいました。Drupal 8でREST APIを使用してログインする方法を教えてください。デフォルトでは、ユーザーがログインすると、Drupalはユーザー名とパスワードを検証します。ログイン後、ブラウザには作成されたセッションのCookieがあります。
REST APIを使用して、Drupal 8がユーザーが初めてログインするときにユーザーをどのように確認できますか?ログイン後、現在のログインをどのように確認しますか?
この記事を読んでいました。Drupal 8でREST APIを使用してログインする方法を教えてください。デフォルトでは、ユーザーがログインすると、Drupalはユーザー名とパスワードを検証します。ログイン後、ブラウザには作成されたセッションのCookieがあります。
REST APIを使用して、Drupal 8がユーザーが初めてログインするときにユーザーをどのように確認できますか?ログイン後、現在のログインをどのように確認しますか?
回答:
ユーザー資格情報をPOSTしてDrupalにログインします。必ず「Content-Type」ヘッダーを設定してください。これにより、ユーザーのセッションが開始されます。
POST URL:
/user/login?_format=json
ヘッダ:
Content-Type: application/json
POSTデータ:
{
"name": "username",
"pass": "password"
}
成功した応答:
{
"current_user":{
"uid": "1",
"roles":[
"authenticated",
"administrator"
],
"name": "username"
},
"csrf_token": "asda09820380_2238019280dk09n908asjdlkajdaoa",
"logout_token": "asdasd09a8sdaslkdasl-asdasdklsajdlkasdjlksj"
}
ヘッダーを設定して、後続のGET、POST、PATCH、DELETEなどのリクエストでCSRFトークンを使用します。
X-CSRF-Token: asda09820380_2238019280dk09n908asjdlkajdaoa
ログアウトするには、POSTリクエストでログアウトトークンを使用します。これにより、ユーザーのセッションが終了します。
/user/logout?_format=json&token=asdasd09a8sdaslkdasl-asdasdklsajdlkasdjlksj
ログインステータスを取得:
/user/login_status?_format=json
GETトークン:
/rest/session/token
参照:
Drupal Coreバージョン:8.x-4.x
最初にユーザーログインサービスを有効にする必要があります。これは非常に多くの方法で実行できますが、REST UIモジュールを使用することを好みます。
ゴーへ/管理/設定/サービス/休息と有効ユーザー RESTリソースを。
有効にすると、ユーザーリソースの横にある[ 編集 ]をクリックして、/ admin / config / services / rest / resource / entity%3Auser / editに移動できます。必ずGETメソッドを有効にしてください。
これですべての設定が完了しました。ターミナルでこのコマンドを実行するか、PostmanクライアントやRestletクライアントなどのcurlリクエスト用のアプリケーションを使用して、サービスの使用を開始できます。
注:CSRFトークンは、/ 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'
返されるオブジェクトは次のとおりです。
成功:
{
"current_user": {
"uid": "1",
"roles": [
"authenticated"
],
"name": "Admin"
},
"csrf_token": "bbbbbbbbbbbbbbbbbbbbbbbbbb",
"logout_token": "ccccccccccccccccccccccccc"
}
失敗:
{
"message":"Sorry, unrecognized username or password."
}