php如何设置session只有在用户关闭浏览器或退出 登录才会回收过期的

php中,用户在登录时设置session_id并储存在指定路径,其中存有token等用户信息,默认过期时间时24分钟,也就是用户在24分钟内不活动,session就回收,用户在24分钟中之后如果进行操作就会出现会话过期的提示。
以上是目前网站中的机制。

请问如何正确设置session,已达到,用户在退出登录或者关闭浏览器时候,session才会过期?也就是说,不管用户在默认的24分钟之后是否活动,session都是一直有效的。求大佬们指教

阅读 7.4k
4 个回答

并不推荐通过调整session时间去实现该,这其实是导致安全性问题;

我推荐的做法是,在你的前端页面通过js自动定时访问后端接口实现对SESSION的保活。

兄弟,PHP的Session准确的将不是通过时间自动失效,是有个配置项:

gc来控制,应该是达到请求数量后才会去检查gc,在生产环境可以提升性能,你测试环境没有达到gc的请求数量所以就并不会去检查session是否失效。

参考:
http://php.net/manual/zh/sess...

session过期时间可以自定义啊,修改一下不就好了
session.cookie_lifetime = 0浏览器关闭失效

关闭浏览器之后,session失效这个还没有听说过.一般都是清空浏览器session会失效.

另外,我在session_start()之前设置了
$lifeTime = 60;
session_set_cookie_params($lifeTime);
以测试是否有用,但是好像是因为概率问题,发现并没失效

推荐问题