Laravel APIでのCSRFトークンの不一致エラーの解決方法


  1. CSRFトークンの生成: Laravelでは、APIリクエストに対してCSRFトークンを使用する必要があります。まず、CSRFトークンを生成するために、csrf_tokenヘルパーメソッドを使用します。これは、APIのエンドポイントでトークンを取得するためのURLへのGETリクエストを送信することで行われます。

    $token = csrf_token();
  2. CSRFトークンの送信: 生成したトークンをAPIリクエストのヘッダーまたはリクエストのパラメーターとして送信する必要があります。一般的な方法は、リクエストのヘッダーにX-CSRF-TOKENという名前でトークンを含めることです。

    // Axiosを使用した例
    axios.defaults.headers.common['X-CSRF-TOKEN'] = token;

    または、リクエストのパラメーターとしてトークンを送信することもできます。

    // Axiosを使用した例
    axios.post('/api/endpoint', { _token: token });
  3. CSRFミドルウェアの構成: LaravelのAPIルートは、CSRFミドルウェアで保護されている場合があります。api.phpファイルでルートを定義している場合、デフォルトでVerifyCsrfTokenミドルウェアが有効になっています。このミドルウェアは、CSRFトークンの検証を行います。

    // api.php
    Route::middleware('auth:api')->group(function () {
       // your API routes
    });

    上記のようにミドルウェアグループを定義している場合、VerifyCsrfTokenミドルウェアが自動的に適用されます。

  4. トークンの確認: 以上の手順を実施した後、APIリクエストを送信する際には、正しいCSRFトークンが送信されていることを確認してください。エラーが解消しない場合は、トークンの生成や送信の手順に問題がないか再度確認してください。

これらの手順を実行することで、Laravel APIでのCSRFトークンの不一致エラーを解決することができます。以上の手順とコード例を参考にしてください。