同一サーバーに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の名前を分ければ、セッションが独立して扱われるようになり、ログアウトやログインが別プロジェクトに影響を与えることはなくなります!