-
CSRFトークンの生成: Laravelでは、APIリクエストに対してCSRFトークンを使用する必要があります。まず、CSRFトークンを生成するために、
csrf_token
ヘルパーメソッドを使用します。これは、APIのエンドポイントでトークンを取得するためのURLへのGETリクエストを送信することで行われます。$token = csrf_token();
-
CSRFトークンの送信: 生成したトークンをAPIリクエストのヘッダーまたはリクエストのパラメーターとして送信する必要があります。一般的な方法は、リクエストのヘッダーに
X-CSRF-TOKEN
という名前でトークンを含めることです。// Axiosを使用した例 axios.defaults.headers.common['X-CSRF-TOKEN'] = token;
または、リクエストのパラメーターとしてトークンを送信することもできます。
// Axiosを使用した例 axios.post('/api/endpoint', { _token: token });
-
CSRFミドルウェアの構成: LaravelのAPIルートは、CSRFミドルウェアで保護されている場合があります。
api.php
ファイルでルートを定義している場合、デフォルトでVerifyCsrfToken
ミドルウェアが有効になっています。このミドルウェアは、CSRFトークンの検証を行います。// api.php Route::middleware('auth:api')->group(function () { // your API routes });
上記のようにミドルウェアグループを定義している場合、
VerifyCsrfToken
ミドルウェアが自動的に適用されます。 -
トークンの確認: 以上の手順を実施した後、APIリクエストを送信する際には、正しいCSRFトークンが送信されていることを確認してください。エラーが解消しない場合は、トークンの生成や送信の手順に問題がないか再度確認してください。
これらの手順を実行することで、Laravel APIでのCSRFトークンの不一致エラーを解決することができます。以上の手順とコード例を参考にしてください。