top-think / framework

ThinkPHP Framework
http://www.thinkphp.cn
Other
2.71k stars 1.05k forks source link

tp8的session机制改变了吗? #3010

Closed HeroTianTYJ closed 1 month ago

HeroTianTYJ commented 1 month ago

发现一个问题,我tp6和tp8项目中,设置的session有效期都是86400秒,也就是一天的时间,tp6的项目,关闭浏览器后session立即失效,tp8的项目,关闭浏览器后不会失效,而是要等上一次操作距离下一次操作大于86400秒才会失效,请问这是因为tp8的session机制改变了吗?

augushong commented 1 month ago

看下你的cookie的配置是不是有出入。 默认的cookie过期时间是0,这个默认配置虽然一般没有问题,但实际上是不合理的。 过期时间为0,原则上每次浏览器重启,都会丢失用户状态。之所以不会这样,是因为浏览器都有会话保持功能,关闭浏览器不会关闭会话,再打开时,会继续之前的会话,因此效果上就像永久不会过期一样。只要换成electron就会出问题。

HeroTianTYJ commented 1 month ago

看下你的cookie的配置是不是有出入。 默认的cookie过期时间是0,这个默认配置虽然一般没有问题,但实际上是不合理的。 过期时间为0,原则上每次浏览器重启,都会丢失用户状态。之所以不会这样,是因为浏览器都有会话保持功能,关闭浏览器不会关闭会话,再打开时,会继续之前的会话,因此效果上就像永久不会过期一样。只要换成electron就会出问题。

感谢回复,我看了一下,这两个项目都没有设置cookie过期时间,config目录中没有放cookie.php配置文件