🤧

【Laravel 8/9】APIでsessionが使えない時の対処法

2022/03/11に公開

Laravel 8・9でAPI機能を使用した際にセッションが使えないときの対処法です。
Laravelはバージョンによって全く仕様が変わるのでご注意を(そのせいで結構やられたから備忘録として残す)

Kernel.phpに追記

API機能で暗号化CookieをベースにしたLaravelセッション管理を有効にします。

Kernel.php
        'api' => [
            // ここから追記
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            // ここまで追記
            'throttle:api',
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

既存セッションをクリア

追記したら、storage\framework\sessions\ ディレクトリに有るファイルを.gitignore以外全部削除。
↑セッションをファイルベースで管理する設定にしている場合のみ

これで反映されてるはず。
迂闊にキャッシュクリア等を怠ってたためやられてました。

※Zennでは別にQiitaに書くまでもない内容をかくかもー

Discussion