概要CakePHP4では、公式ドキュメントを参考にログイン機能を実装すると、自動でブラウザにログイン状態を保持してくれます。ログイン状態はSessionに保持されます。このログイン状態の保持時間が短く、少し席を外したりすると、すぐに再ログインを求められてしまいます。そこで今回は、これを延長する方法を紹介します。コードログイン状態の保持時間を延長する方法は簡単です。config/app.phpに下記のコードを追記するだけです。//以下を追記(単位は分。],デフォルトでは何分なの?デフォルトでは、ログイン状態の保持時間は体感30分弱だったのですが、これはどこで指定されているのでしょうか。※ちなみに、先述のconfig/app.phpにはデフォルトでは’timeout’の指定はありませんでした。いうわけでコードを追ってみたところ、vendor/cakephp/cakephp/src/Http/Session.phpに以下のような記載がありました。}「’timeout’が指定されていればそれをSession継続時間として指定する」というコードの模様。コードを見た感じ、デフォルトでは「session.gc_maxlifetime」の値を参照するようですね。調べたところ、下記外部サイト様に記載がありました。3.5.17TL...qiita.com※以下、上の外部サイト様より抜粋です。・config/app.phpのSessionにtimeoutを設定します・設定しないと、php.iniの「gc_maxlifetime」の値となります仮説は正しかったようです。いうわけで、php.iniのsession.gc_maxlifetimeを調べたところ、「1440」と指定されていました。1440秒なので、私のサーバ環境ではデフォルトのSession保持時間は24分間でした。30分弱だったようですね。ちなみに、Session.phpのパスはCakephp3系と4系で違う模様。CakePHP4系:vendor/cakephp/cakephp/src/Http/Session.phpCakePHP3系:vendor/cakephp/cakephp/src/Network/Session.phpまとめ1Session保持時間(ログイン状態維持時間)はconfig/app.phpで指定できる。2デフォルトではphp.iniの「session.gc_maxlifetime」の値を参照する。【CakePHP4】CakePHPは非常に便利ですが、データの取得方法に迷うことがあります。下記のようなテーブル構造でサービスを運用しているとします。DBのデータをdelete()等で削除する際に一定の処理を実行する。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。ホームCakePHPmulemuleと申します。IT業界で働いて約5年になります。ウェブ製作・ツール系アプリ製作を主に行っております。exports?exports.SyntaxHighlighter=SyntaxHighlighter:nullタイトルとURLをコピーしました。