データベースに注文レコードを保存するカスタムサービスAPIを作成しました。 POSTMANを確認したところ、問題なく動作しています。しかし、アプリからリクエストすると、「CSRF検証に失敗しました」という問題が発生します。
私は何かを逃していますか?
POSTMANでは、API呼び出しでX-CSRF-Tokenを送信する必要がありますが、APPからAPI呼び出しを実行しているときに、X-CSRF-Tokenが欠落している可能性があります。セッション認証を有効にしている場合は、X-CSRFトークンが必要です。簡単なテストを行うには、drupal admin endのサービス構成ページでセッション認証を無効にしてから、API呼び出しを実行してください。
ただし、適切な修正は、X-CSRF-Tokenを提供する別のAPIを用意し、X-CSRF-TokenとともにAPI呼び出しを行うことです。
ワークフローの手順を確認できます
最初ログインの時間
今後のリリース
新しいCSRFトークンを要求しないでください。前の要求で返されたトークンを使用してください。これは、返された結果のtokenという名前のキーにあります。新しいcsrfCSRFトークンを初めてリクエストするだけです。
ユーザープロフィールのリクエストの例を次に示します。
{
"method": "POST",
"url": "http://HOSTNAME/SERVICE_PATH/user/profile",
"headers": {
"Content-Type": "application/json",
"Accept": "application/json",
"Connection": "keep-alive",
"X-CSRF-Token": "MHT4hmagxHgf0lOYlkENGlTZGk2AZ96G3p3ZCCc2kvo",
"Cookie": "SESSb4d5ba755bb4eb727d982993490e6681=waroHcB4h8rbU0yhZjh-zGLAquZYlpayC_kB38gx--I"
}
}