Laravel Sanctumで 'route login not defined' エラーが発生する場合の解決方法


  1. ミドルウェアの設定:

    • api ミドルウェアがルートに適用されているか確認してください。Laravel Sanctumでは、このミドルウェアが必要です。ルート定義に ->middleware('api') を追加してみてください。
  2. 認証関連の設定:

    • config/auth.php ファイルで、デフォルトの認証ガードが正しく設定されていることを確認してください。デフォルトでは、web ガードが使われますが、Sanctumを使用している場合は sanctum ガードを使用する必要があります。
  3. ルートキャッシュのクリア:

    • ターミナルで php artisan route:clear コマンドを実行して、ルートキャッシュをクリアしてみてください。キャッシュされたルートが問題を引き起こしている可能性があります。
  4. セッションドライバの設定:

    • config/session.php ファイルで、セッションドライバが正しく設定されていることを確認してください。Sanctumでは、session ドライバとして cookie を使用する必要があります。
  5. RouteServiceProviderの確認:

    • app/Providers/RouteServiceProvider.php ファイルを確認し、mapApiRoutes メソッド内で $middleware 配列に EnsureFrontendRequestsAreStateful::class ミドルウェアが含まれていることを確認してください。このミドルウェアがSanctum認証を処理します。