CakePHPのAuthコンポーネントをログイン認証に用いたサイトで発生しました。


調査してみると以下のフローでセッション切れが発生していたことがわかりました。



①サイトにログインする
サイト内のリンクから別ドメインのサイトを別ウィンドウで開く
③元ウィンドウのログインセッションが切れる




どうも別ドメインのサイトを開いた時にログインセッションを切断している様な動きです。



対策として/app/config/core.php内のSession.checkAgentをfalseに設定しました。




(変更前)Configure::write('Session.checkAgent',true);

(変更後)Configure::write('Session.checkAgent',false);
※Security.levelはlowに設定しています。


CakePHPサイトのマニュアルによると

Session.checkAgent false に設定すると、リクエストの間にユーザエージェントが変更されていないかを CakePHP のセッションが確認しなくなります。

とのことです。

http://book.cakephp.org/ja/compare/44/CakePHP-Core-Configuration-Variables



こんな簡単な設定で直っちゃうのに2日間は悩みましたよ!!まじかんべんべん。。