Laravel本地环境子域间Session共享失败问题求助
Laravel子域Session共享问题解决办法
问题根源
Chrome等现代浏览器对localhost这个特殊域名有安全限制,不支持将.localhost作为Cookie的域属性,这就是你设置了SESSION_DOMAIN=.localhost但Cookie无法生效的核心原因。
具体解决步骤
- 替换本地测试域名:修改hosts文件,把原来的
localhost相关记录改成自定义域名,比如:127.0.0.1 myapp.test 127.0.0.1 admin.myapp.test - 更新Laravel配置:在
.env文件中修改以下参数:APP_URL=http://myapp.test SESSION_DOMAIN=.myapp.test - 清除缓存:在项目根目录执行命令刷新配置缓存:
php artisan config:clear php artisan cache:clear - 重置浏览器状态:删除浏览器中所有与
localhost相关的Cookie,重启浏览器后重新测试。
这样设置后,登录http://myapp.test/login生成的Session Cookie会被浏览器识别为.myapp.test域下的有效Cookie,访问http://admin.myapp.test/dashboard/overview时会自动携带该Cookie,实现子域间的Session共享。
内容的提问来源于stack exchange,提问作者noah1400
相关产品推荐
相关产品推荐

