久しぶりの Cakeネタ。
通常、認証機能などで、Session を利用した場合、ブラウザを閉じると保持していた Session 情報は消える。
これは、php.ini の session.cookie_lifetime に「0」を設定した場合の挙動だが、 CakePHP で、認証機能を実装した場合、session.cookie_lifetime を「0」に設定していてもセッションが消えない場合がある。
調べてみると、どうやら app/config/core.php で、Security.level の値を high 以外を設定した場合、 Sessionクラスで session.cookie_lifetime が上書きされてしまう様子。
知らんかった。。この余計?な機能のお陰で、月末のクソ忙しい時に半日潰したよ。
という事で、ブラウザを閉じた際にセッション情報を消して欲しい場合は、Security.level を high に!
ただ、high に設定した場合、セッションのタイムアウトまでが極端に短いので、Session.timeout で調整が必要っす。
- Newer: CakePHP 1.2.5 リリース!
- Older: [Subversion] .svnファイルを一括削除する