Valet环境下NuxtJS对接Laravel Sanctum鉴权非localhost场景报419错误
排查方案
- 检查Laravel
.env文件中SESSION_DOMAIN配置,需设置为.backend.test(前缀带点),确保根域名下的所有子域名均可共享Session Cookie - 确认Nuxt侧请求库配置已开启
withCredentials: true,否则浏览器不会自动携带Session、XSRF相关Cookie到后端;如果使用Nuxt3原生useFetch/$fetch,需额外配置credentials: 'include'参数 - 校验鉴权请求顺序:必须先发送GET请求到
/sanctum/csrf-cookie接口获取CSRF Token,再发起登录等鉴权请求 - 检查
.env文件是否存在SANCTUM_STATEFUL_DOMAINS配置项,该配置优先级高于sanctum.php中的默认值,若存在需确认值已包含app.backend.test:3000、backend.test - 确认开发环境Session安全配置:
.env中SESSION_SECURE_COOKIE需设置为false,避免http访问场景下浏览器不存储带Secure属性的Cookie;SESSION_SAME_SITE设置为lax即可 - 所有配置修改完成后执行
php artisan config:clear清空Laravel配置缓存,再重启前后端服务重试 - 若仍报错可打开浏览器F12应用-存储-Cookie面板,校验后端返回的
laravel_session、XSRF-TOKEN两个Cookie的Domain值是否为.backend.test,未正确设置则回头核对上述配置项
内容的提问来源于stack exchange,提问作者RomkaLTU
相关产品推荐
相关产品推荐

