PHPSESSID 过期时间设置为N/A,在iOS下无效
今天遇到一个问题
我们项目的登录状态是由PHPSESSID来判断的
然后产品提出了一个需求是,手机浏览器上登录之后,关闭浏览器再打开,登录状态需要还存在,
于是后台开发将PHPSESSID的过期时间设置为N/A,即永不过期。
然后在测试阶段发现在PC端浏览器和android系统下手机浏览器都正常,登录之后,关闭浏览器再打开,getuserinfo
这类接口依然能请求到用户信息,判断为已登录
但是在iOS下的safari和其他第三方浏览器下测试,发现每次关闭浏览器再打开,登录状态都没了,PHPSESSID已经换了一个新的,并不是上次登录时的PHPSESSID,由此造成登录状态的丢失
然后我想起来我之前做的一个项目,并不存在这个问题,并且前端代码这块的逻辑是一样的,所以我将两个项目对比,发现之前没有问题的代码,它的PHPSESSID过期时间是一个具体时间,比如七天后,而这个有问题的项目它的PHPSESSID过期时间是N/A
,除了这里不同之外,别的都是一样的代码和设置,于是让后台将本项目的PHPSESSID也设置一个具体过期时间,比如七天后,一天后这样的,然后再测试就发现完美解决了iOS下的这个问题
所以想问一下,PHPSESSID的过期时间设置为N/A,在iOS下是否是无效的?...我百度和Google之后也没有找到相关的问题,请问有对这个有了解的吗? 能否解答一下这个情况
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
换成token + COOKIE,或者token + localStorage 。
session 在下发给浏览器时,浏览器会存储sessionId,但是这个 COOKIE 没有有效时常,即自浏览器关闭就会重新分配。