关于session的一个奇怪问题

1. 运行环境

1). 当前使用的 Laravel 版本?

8.5

2). 当前使用的 php/php-fpm 版本?

PHP 版本:7.4
php-fpm 版本:7.4

3). 当前系统

Windows 10

2. 问题描述?

使用phpCas进行单点登录,在登陆方法设置了session用以存储用户的部分信息,在登出删除掉session内的信息,但在单点登出后session信息又神奇的回来了。
进行断点测试后,发现session信息在phpCAS::logout前是正常删除掉的

$param = array('service'=>'https://XXXX.cn/');
phpCAS::logout($param);

在进行单点登出后,重定向到了首页,在首页方法内session信息就回来了。
我进行过猜测:
是否是phpCAS::logout执行时重新访问了单点登录方法又设置了session信息,调试后发现并没有。
我又尝试在phpCAS::logout方法后调试,发现该方法后的代码便不再执行了。由认证中心导向了首页。
所以我十分无奈只能尝试使用Cache缓存+session_id的方式来替代session设置信息,结果是成功的,可以正常的被删除。

3. 您期望得到的结果?

session为什么没有被删除?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

找到了问题所在,登出后需要重新生成session。

3年前 评论
讨论数量: 3

session是根据session-id来删除的吧,删除的时候不是对应的id来删除的,那删除就没有效果,就是说没有删除成功

3年前 评论
yellowtao (楼主) 3年前

找到了问题所在,登出后需要重新生成session。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!