开发环境:前后端两套用户系统:后台主页是:http://www.mysite.com/admin/后台登录页:http://www.mysite.com/admin/l...商品管理页:http://www.mysite.com/admin/m...用户管理页:http://www.mysite.com/admin/user当我访问http://www.mysite.com/admin 时能够正常跳转到登录页,登录成功后跳回/admin;问题:当在未登录状态访问http://www.mysite.com/admin/m... 时,自动跳转到登录页,登录成功后仍然跳转到/admin,此时实际已经登录,继续输入http://www.mysite.com/admin/m... 访问仍然会跳转到/admin。已排查出的线索:1、访问:http://www.mysite.com/admin/m... 时,产生session(命名session1)2、中间件验证发现未登录,跳转至登录页,此时产生新的session(命名session2)3、执行登录,登录成功后产生session(命名session3),并且销毁了session2。4、此时再次访问http://www.mysite.com/admin/m... 时程序获取到session1,验证未登录跳转至登录页,登录页使用session3验证登录成功回跳至后台主页/admin。造成永远无法访问商品管理页的结果。在访问用户管理页时,都能成功,未出现此类情况。目前排查问题不同层级的访问路径(路由)产生不同的session导致登录状态不一致。希望各位大神指点迷津。
2 回答
SMILET
TA贡献1796条经验 获得超4个赞
已找到问题所在。
session的配置文件中有个变量path,这个path被人配置成一个基于windows的绝对路径(自作孽不可活555555),此时laravel无法识别cookies存储位置,按访问地址存储,所以导致访问/admin/mall/product和访问/admin/login时使用的是不同cookies,也就是需要生成多个session。
解决方案:将path配置成“/”就只剩一个session了
'path' => '/',
胡子哥哥
TA贡献1825条经验 获得超6个赞
如果你的登录认证用的是自带的Auth,那么就有这种可能。
Auth是分guard的,guard就是用来解决这种前后端不同账户系统登录的。
看看是不是用到的guard不一样。
- 2 回答
- 0 关注
- 695 浏览
添加回答
举报
0/150
提交
取消