开发环境:前后端两套用户系统:后台主页是: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 回答
湖上湖
TA贡献2003条经验 获得超2个赞
已找到问题所在。session的配置文件中有个变量path,这个path被人配置成一个基于windows的绝对路径(自作孽不可活555555),此时laravel无法识别cookies存储位置,按访问地址存储,所以导致访问/admin/mall/product和访问/admin/login时使用的是不同cookies,也就是需要生成多个session。解决方案:将path配置成“/”就只剩一个session了'path'=>'/',
侃侃无极
TA贡献2051条经验 获得超10个赞
如果你的登录认证用的是自带的Auth,那么就有这种可能。Auth是分guard的,guard就是用来解决这种前后端不同账户系统登录的。看看是不是用到的guard不一样。
添加回答
举报
0/150
提交
取消