遇到一个问题,想请教一下各位大佬帮着分析解决一下。
问题如下:
用户在登录时,将用户的一些信息使用例如:$_SESSION['token'],$_SESSION['username']等这样,保存在SESSION文件中,用户在查看一些需要调取数据的页面的时候,ajax会根据$_SESSION['token']去验证一下用户token的有效性。
问题出在,用户在登陆后,停留在当前页面一段时间,比如半小时,再刷新整个页面的时候,或者跳转到其他需要调取数据,验证token的页面的时候,会触发设置的会话超时,请重新登录的弹窗提示。但是我这边并没有设置相关过期时间。
经过监控发现,用户在登录时,保存在对应session文件中的token值改变了,问题来了,用户并没有重新登录,也没有其他人使用该用户去登录,也就是说,登录时生成并保存在数据库中的token并没有改变,但是为何session文件中的token值会变啊?
这就导致了使用$_SESSION['token']去对比数据库的token时候出现不一致,然后才出现弹窗提示。
请问这个session文件中的token值为何会改变啊?能否有前辈指教一下问题出在哪里么?
session 默認有效時間24分鍾