Laravel 8.83移动端浏览器Auth认证失效问题求助
Laravel 8.83 移动端认证会话丢失问题
我使用Laravel 8.83搭建站点,该站点在Edge、Chrome等桌面浏览器中运行正常,但移动端Safari及iOS Chrome中出现异常。具体表现为:登录页调用Auth::attempt()后,打印Auth::user()显示正常,但跳转至下一页后,调用Auth::user()返回null。
查阅相关讨论后推测是会话问题——移动端浏览器每次请求都会生成新会话,我通过打印session()->getId()验证了这一点:
Desktop browser
login session id: TWsa7xPcuc81DE7yleeeg1ezV1dSEWjijm2rviyf
subsequent page session id: TWsa7xPcuc81DE7yleeeg1ezV1dSEWjijm2rviyfMobile browser
login session id: fGtu4IJTEesA4BA7ov8NfiYIxWQL2MtmDsmb32DK
subsequent page session id: zTzXTteHb5cYG7oxrvfL5oNcy7fohu330wgf4i0P
请问是否有设置可让移动端浏览器表现得与桌面浏览器一致?或有任何解决移动端认证问题的方案?
问题闭环信息(供同类问题用户参考)
- 根因为WebKit 16.4和16.5版本的bug;
- iOS端Chrome基于WebKit而非Blink内核,因此也受影响;此前误以为仅移动端受影响,实际搭载该版本WebKit的macOS Safari同样会出现问题;
- 具体原因为Safari成功设置Cookie,但未知原因向服务器发送null值,导致服务器分配新会话ID;
- 当前启用remember功能可让用户正常登录,该功能未受此WebKit bug影响;
- 经验总结:排查问题时需关注软件或包的版本;
- bug详情编号:255524
内容的提问来源于stack exchange,提问作者Adi Putra
相关产品推荐
相关产品推荐

