Postman接收Cookie但未检测,致Laravel Sanctum CSRF验证失败
Laravel Sanctum CSRF Token不匹配问题(Postman本地.local域名异常)
问题详情
- 使用Postman测试Laravel Sanctum API,遵循「先获取CSRF Token再登录」的流程,但始终出现CSRF Token不匹配错误
- 已手动添加
X-XSRF-TOKEN请求头,排查后怀疑是Cookie存储异常导致 - 调用
/sanctum/csrf-cookie接口时:- Postman控制台可见
Set-Cookie响应头 - 响应的Cookies标签页显示未收到服务器Cookie
- 但Postman的Cookie存储中存在测试域名
home.local的Cookie
- Postman控制台可见
- 上述异常导致登录请求未携带会话Cookie,触发CSRF验证失败;切换到Insomnia.Rest客户端可正常完成操作,说明API本身无问题
已尝试的解决方法
- 生产环境解决方案:通过前置请求脚本手动获取并存储CSRF Token,脚本代码如下:
const url = pm.environment.get('base_url'); const referer = pm.environment.get('Referer'); pm.sendRequest({ url: `${url}/sanctum/csrf-cookie`, method: 'GET', }, function (err, response, {cookies}) { if (!err) { console.log("cookies", cookies); pm.environment.set('xsrf_token', cookies.get('XSRF-TOKEN')) } });
- 本地环境临时解决:将本地开发域名从
my-app.home.local修改为my-app.home.com后,Cookie可正常接收并携带,CSRF验证通过
疑问
怀疑Postman对.local域名存在特殊处理问题,不确定该异常是操作失误导致还是Postman软件Bug。
内容的提问来源于stack exchange,提问作者Boardy
相关产品推荐
相关产品推荐

