Cookie不在document.cookie列表中,而http_only = false

问题描述

我有一个Nuxt.js前端应用程序,它执行身份验证请求。后端有一个Laravel / Sanctum应用程序。它使用内置的基于cookie的会话身份验证。身份验证请求失败,因为/ login请求中提供了 X-XSRF-TOKEN HTTP标头。有人可以帮忙弄清楚为什么不通过后端提供的cookie创建标头吗?

注意:一切均可在笔记本电脑上正常运行。仅当部署到测试环境(GCP VM实例+ Gitlab页面)时,它才会失败。

在Nuxt.js中验证代码:

this.$axios.defaults.withCredentials = true; await
this.$axios.get("/sanctum/csrf-cookie");
console.log(document.cookie);
await this.$axios.post("/login",credentials);

I can see that XSRF-TOKEN cookie is returned by server

I also see that the XSRF-TOKEN cookie is provided in the /login POST request,while no X-XSRF-TOKEN HTTP header is created

Cookie details

我还调试了axios源代码,并看到它试图创建从document.cookie中获取XSRF令牌的X-XSRF-TOKEN标头。但是到那时,document.cookie还不包含令牌cookie。为什么?

解决方法

我找到了原因。会话域不正确。我已经设置了.my-domain.co.uk,它现在可以正常工作。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...