開發環境:前后端兩套用戶系統:后臺主頁是: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 關注
- 729 瀏覽
添加回答
舉報
0/150
提交
取消