首页 > 解决方案 > CSRF 令牌不匹配 laravel 气闸 axios

问题描述

描述:

我尝试使用来自不同域的 axios 登录。我在“mydomain.com”中有核心,在“seconddomain.com”中有反应站点。如果我尝试使用 axios API 请求从 seconddomain.com 登录到 mydomain.com,它工作正常,也没有 CSRF-COOKIE 请求。但是如果我尝试从我的反应“localhost:3000”登录到“mydomain.com”,我有“CSRF 令牌不匹配”。为什么?

这是我的配置:

在会话中

'same_site' => "none",

axios配置

axios.create({
  baseURL: "mydomain.com",
  withCredentials: true,
  responseType: "json",
});

axios登录

await API.get('/airlock/csrf-cookie');
response = await API.post(
      '/api/v1/login',
      data
);

来自浏览器的 cookie - csrf-cooke 调用 在此处输入图像描述

来自浏览器的 cookie - 登录调用 在此处输入图像描述

标签: phpreactjsaxioslaravel-7laravel-airlock

解决方案


我认为你的问题是PHP version.

为了使用laravel-7 ,您需要确保您的服务器满足以下要求:

  • PHP >= 7.2.5
  • BCMath PHP 扩展
  • Ctype PHP 扩展
  • 文件信息 PHP 扩展
  • JSON PHP 扩展
  • Mbstring PHP 扩展
  • OpenSSL PHP 扩展
  • PDO PHP 扩展
  • 标记器 PHP 扩展
  • XML PHP 扩展

检查服务器要求文档


推荐阅读