社内で管理画面のログインセッション時間を長くしたい!という要望があったので、対応しました。
その際の事を備忘録として残します。
(間違っている点や抜け漏れあれば、コメント頂けると嬉しいです!)
##実行環境
- CentOS 6.8
- PHP5.6.30
- CakePHP2.4.10
#要望
弊社で開発しているサービスの管理画面において、
未操作時にセッションが切れる時間を、
現状の1440秒(24分)から、3600秒(60分)に変更して欲しい。
#開発手順
調査した結果、app/config/core.phpでセッション設定している事を確認。
core.php(変更前)
Configure::write('Session', array(
'defaults' => 'php',
));
```
↓
試しに30秒後にセッション切れるように設定した見た結果・・・
30秒、1分経過してもログアウトしない!何故だ!
````php:core.php(変更後)
Configure::write('Session', array(
'defaults' => 'php',
'timeout' => '30',
));
```
そこで再調査。
core.phpの191行目にtimeoutの指定は**分数**でしてくれ!と記載してありました。秒数では無かったんですね〜。
参考記事にも記載してありました(汗)
```php:core.php
* - `Session.timeout` - The number of minutes you want sessions to live for. This timeout is handled by CakePHP
```
↓
なので、`'timeout' => 60`に設定変更して、対応完了!
```php:core.php(~完成版~)
Configure::write('Session', array(
'defaults' => 'php',
'timeout' => 60, // 1hours
));
```
#参考文献
CakePHP 2.x Authコンポーネントのセッションタイムアウト設定
http://teraxlh.wp-x.jp/?p=29
CakePHP2でログイン周りのセッション時間変えてみた
http://u0u1.net/CzYm
CakePHPのセッションタイムアウトの指定はSession.timeoutだけではダメだった
https://inoccu.com/blog/2012/11/21/223145.html