【问题标题】:CSRF token mismatch laravel airlock axiosCSRF 令牌不匹配 laravel 气闸 axios
【发布时间】:2020-06-27 15:43:12
【问题描述】:
  • 气闸版本:1.0.0
  • Laravel 版本:7.0.0
  • PHP 版本:7.2.0
  • 数据库驱动和版本:MySql 5.7.23

说明:

我尝试使用来自不同域的 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 - 登录调用

【问题讨论】:

  • 你检查过config\airlock.php'stateful' => explode(',', env('AIRLOCK_STATEFUL_DOMAINS', 'domain here')),
  • 我必须添加什么域? “mydomain”(核心在哪里)或“localhost:3000”(反应在哪里)?

标签: php reactjs axios laravel-7 laravel-airlock


【解决方案1】:

我认为你的问题是PHP version.

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

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

查看server-requirements 文档

【讨论】:

    猜你喜欢
    • 2020-04-14
    • 2020-07-08
    • 2016-12-10
    • 2016-09-20
    • 2020-01-20
    • 2020-06-17
    • 1970-01-01
    • 2019-11-11
    • 2020-05-02
    相关资源
    最近更新 更多