Nuxt .js 和 Laravel API - CSRF 令牌不匹配

问题描述 投票:0回答:1

我正在尝试使用 nuxt.js 作为前端并使用 Laravel 作为 API 来制作登录页面。

但是当我从 sainttum-cookie 中获取 csrf 令牌后,由于“CSRF 令牌不匹配”,我无法使用它。 。而且我不知道该怎么办...

Laravel 信息:

APP_URL=http://localhost:8080
FRONTEND_URL=http://localhost:3000
SANCTUM_STATEFUL_DOMAINS=http://localhost:8000,localhost:3000,localhost:8000,http://localhost:3000

8080 是 LAravel 的端口,3000 是 nuxt。

这些是对 api 的调用,登录被延迟并返回有关 CSRF 的错误,我不知道为什么。

// calls from nuxt
async function validate() {

  await axios.get('http://localhost:8080/sanctum/csrf-cookie', {
    withCredentials: true
  });

  const token = useCookie('XSRF-TOKEN');

  await axios.post('http://localhost:8080/login', {
    'email': 'vladutteodor18@gmail.com',
    'password': '1234567890'
  }, {
    headers: {
      'X-XSRF-TOKEN': token.value as string
    }
  })
}

cors.php 配置

    'paths' => ['api/*', 'sanctum/csrf-cookie'],
    'allowed_methods' => ['*'],
    'allowed_origins' => [env('FRONTEND_URL', 'http://localhost:3000')],
    'allowed_origins_patterns' => [],
    'allowed_headers' => ['*'],
    'exposed_headers' => [],
    'max_age' => 0,
    'supports_credentials' => true,
laravel nuxt.js session-cookies csrf laravel-sanctum
1个回答
0
投票

3天后...我需要做的就是为登录axios添加

withCredentials: true
...

太棒了! <3

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.