Laravel + react でSPA認証を導入したときに設定でいくつか躓いたので設定する箇所をまとめときます!
導入部分については今回触れないので下記記事参考にしてインストールしてください。
https://readouble.com/laravel/7.x/ja/sanctum.html
設定 1 ミドルウェア追加
SPA認証する際は、app/Http/Kernel.php に以下のミドルウェアを追加します。
'api' => [
EnsureFrontendRequestsAreStateful::class,
'throttle:60,1',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
設定 2 Ajax処理に設定追加
React側でサーバー通信をする際は以下の設定を追加します。
axios.defaults.withCredentials = true;
設定 3 .envに設定追加
.envに以下の設定を追加
SANCTUM_STATEFUL_DOMAINS=exmple.com
SESSION_DOMAIN=.exmple.com
※ ローカルではこの設定をしなくても動きますが、外部に公開する際は必ず必要な設定です。