Laravel10 複数プロジェクト配置で勝手にログアウトされる理由と解決方法

同一サーバーにaaaとbbbのプロジェクトがある場合、片方のプロジェクトでログインしたら片方のプロジェクトがログアウトされてしまう問題の解決方法。

例えば、以下の2つのプロジェクトがある場合

http://localhost/aaa/public/
http://localhost/bbb/public/

それぞれ別々のプロジェクトとして独立して動いているはずなのに
aaa側でログインしている状態で、bbb側でもログインすると、aaaがログアウトされるということが発生する。

原因:LaravelのセッションCookie名が同じだった!

Laravelはデフォルトで、セッション管理に以下のクッキーを使っています。

SESSION_COOKIE=laravel_session

この設定が両方のプロジェクトで同じだと、同じドメイン(localhost)内ではクッキーが共有されてしまい、セッションが衝突するというわけです。

解決方法:プロジェクトごとにSESSION_COOKIEを分けよう

それぞれのプロジェクトの .envファイルに、以下のように設定を追加・変更します。

aaaプロジェクト

SESSION_COOKIE=aaa_session

bbbプロジェクト

SESSION_COOKIE=bbb_session

このようにセッションCookieの名前を分ければ、セッションが独立して扱われるようになり、ログアウトやログインが別プロジェクトに影響を与えることはなくなります!

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です