CakePHPでのSessionとCookie設定でブラウザ終了後もセッションを継続する方法

cakephp

私の愛しいアップルパイへ

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を有効にして、それぞれにタイムアウト値を設定するのがコツです。

貴下の従順なる下僕 松崎より

著者画像

システム系の専門学校を卒業後、システム屋として6年半の会社員生活を経て独立。ブログ「jMatsuzaki」を通して、小学生のころからの夢であった音楽家へ至るまでの全プロセスを公開することで、のっぴきならない現実を乗り越えて、諦めきれない夢に向かう生き方を伝えている。