5.0.0 - 普通 - 未处理
假设 'session' => [
'expire' => 20,// 测试用,所以写20
]
'cookie' => [
'expire' => 0,
]配置的redis作为session的存储方式,如果设置session过期时间30分钟,那么即使你在30分钟内没有关闭页面,并且访问了服务器,30分钟后仍然会掉线...解决办法:Tp5.0.20
在\thinkphp\library\think\Session.php文件第79行
ini_set('session.cookie_lifetime', $config['expire']);
// 修改后
ini_set('session.cookie_lifetime', 0);
// 灵活的配置可以读取你cookie的过期时间
ini_set('session.cookie_lifetime', Config::get('cookie.expire'));
//还可以更新sessid的cookie的过期时间....感觉有点复杂,我自己就改读取config中cookie的过期时间了。发现config中设置session过期时间后,cookie用的也是session的过期时间,实际上在config中cookie的过期时间是0,这就导致在刷新的时候redis更新了session的生命周期但是浏览器的cookie到期被释放了。请官方看看这算不算一个Bug
