PHPSESSID 过期时间设置为N/A,在iOS下无效

发布于 2022-09-11 18:56:49 字数 737 浏览 15 评论 0

今天遇到一个问题

我们项目的登录状态是由PHPSESSID来判断的

然后产品提出了一个需求是,手机浏览器上登录之后,关闭浏览器再打开,登录状态需要还存在,

于是后台开发将PHPSESSID的过期时间设置为N/A,即永不过期。

然后在测试阶段发现在PC端浏览器和android系统下手机浏览器都正常,登录之后,关闭浏览器再打开,getuserinfo这类接口依然能请求到用户信息,判断为已登录

但是在iOS下的safari和其他第三方浏览器下测试,发现每次关闭浏览器再打开,登录状态都没了,PHPSESSID已经换了一个新的,并不是上次登录时的PHPSESSID,由此造成登录状态的丢失

然后我想起来我之前做的一个项目,并不存在这个问题,并且前端代码这块的逻辑是一样的,所以我将两个项目对比,发现之前没有问题的代码,它的PHPSESSID过期时间是一个具体时间,比如七天后,而这个有问题的项目它的PHPSESSID过期时间是N/A,除了这里不同之外,别的都是一样的代码和设置,于是让后台将本项目的PHPSESSID也设置一个具体过期时间,比如七天后,一天后这样的,然后再测试就发现完美解决了iOS下的这个问题

所以想问一下,PHPSESSID的过期时间设置为N/A,在iOS下是否是无效的?...我百度和Google之后也没有找到相关的问题,请问有对这个有了解的吗? 能否解答一下这个情况

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

三生殊途 2022-09-18 18:56:49

换成token + COOKIE,或者token + localStorage 。
session 在下发给浏览器时,浏览器会存储sessionId,但是这个 COOKIE 没有有效时常,即自浏览器关闭就会重新分配。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文