🗂

Postmanを使って、DrupalのRESTリソースのcookie認証を試す

2024/01/01に公開

概要

以下の記事で、JWTモジュールを使ったJWT認証を試しました。

https://zenn.dev/nakamura196/articles/6619c224ff6197

今回は、cookie認証を試します。

インストール

restuiモジュールをインストールしていない場合には、以下のようなコマンドをインストールと有効化を行います。

composer.phar require 'drupal/restui:^1.21'
vendor/bin/drush en restui

設定

今回は、以下のように、cookie認証を使用します。設定方法の詳細については、冒頭の関連記事をご確認ください。

Postman

ログイン

POST

/user/login

Body > x-www-form-urlencoded

Key Value
name {ユーザー名}
pass {パスワード}
form_id user_login_form

ログインに成功すると、Cookieが発行されます。

セッショントークンの取得

GET

/session/token

Headersタブをみると、先に発行したCookieが設定されていることが確認できます。また、結果としてセッショントークンが取得できています。

コンテンツの作成

POST

/node?_format=json

Headersタブで、上記で取得したセッショントークンをX-CSRF-TokenKeyのValueとして設定します。

Bodyの値は、以下を例として使用しました。

{
    "type": [
        {
            "target_id": "article"
        }
    ],
    "title": [
        {
            "value": "新しい記事のタイトル"
        }
    ]
}

なお、誤ったセッショントークンを入力して試してみると、以下が返却されました。

{
    "message": "X-CSRF-Token request header is invalid"
}

参考:ログアウト

GET

/user/logout

上記により、発行されたセッションクッキーが削除されました。

まとめ

DrupalのRESTリソースのcookie認証を試しました。誤っている点があるかと思いますが、参考になりましたら幸いです。

Discussion