Axios发送双CSRF令牌[CSRF令牌不匹配]



我有一个带有santum实现的基本laravel/vue。问题是直接的:

我正在发送一个令牌请求并登录用户。服务器发回一个新的令牌。Axios添加了此令牌,但添加了另一个始终相同且已过期的令牌。

代码:

await APIClient.get("/sanctum/csrf-cookie")
return APIClient.post("/api/user/login", payload);

DevTools/Network选项卡:

  • csrf cookie请求=>response-headers具有有效的XSRF-TOKEN
  • 登录请求=>request-headersSET-COOKIE属性具有XSRF-TOKEN(旧过期值(;laravel_session;XSRF-TOKEN(新有效值(

我的问题是旧值。在我的代码中根本没有添加这个的位置。

这是我的axios客户端

const APIClient = axios.create({
baseURL: constants.PATHS.url,
withCredentials: true, // required to handle the CSRF token
});

非常感谢你的帮助。

对不起,我不太理解你的问题,你不知道如何在axios的头中添加(旧的过期值(或(新的有效值(吗?我建议使用axios作为窗口的属性。更容易更改其属性:

window.axios.defaults.headers.common['token'] = "aaa"; //add a header

我找到了一个实际的解决方案。无论何时注销,您都应该清除文档的cookie,这样,令牌将始终是新的,旧的令牌不能重复。我见过这种错误在某些情况下发生。

最新更新