私の愛しいアップルパイへ
CakePHPのSessionとCookie設定でブラウザ終了後もセッションを継続する方法をご紹介しましょう。
CakePHPでのSessionとCookie設定でブラウザ終了後もセッションを継続する方法
SessionとCookie設定については、CakePHP 2.xならbootstrap.phpに、CakePHP 3.xならapp.phpに記載します。
Cookieの保持期限も設定することによって、CakePHPはSessionに関する情報をCookieに保持するようになります。こうすることで、ブラウザ終了後もセッション情報を使えるってわけです。
さて、七面倒臭い説明は抜きにして、設定例を記載しましょう。以下はSessionとCookie保持期限を180日に設定する例です。
'Session' => [ 'defaults' => 'php', 'cookie' => 'cookie_name', // 任意の文字列 'timeout' => 259200, // 180days 'cookieTimeout' => 259200, // 180days 'autoRegenerate' => false, // 自動でセッションを再生成するのをやめる 'checkAgent' => false, // trueにすると毎回セッションが切れることがある 'ini' => array( 'session.cookie_lifetime' => 15552000, //180days 'session.gc_divisor' => 15552000, 'session.gc_maxlifetime' => 15552000, //180days ), 'use_cookies' => 1, // SessionをCookieにも保存する 'cookie_lifetime' => 15552000 //180days ],
▼Session設定については以下の公式文書に詳細が記載されていますので、こちらもご参考にどうぞ。
Sessionの設定に加え、use_cookiesでCookieを有効にして、それぞれにタイムアウト値を設定するのがコツです。
貴下の従順なる下僕 松崎より