Laravel 8 使用 Sanctum 身份验证(Reactjs SPA)

Laravel 8 with Sanctum Authentication (Reactjs SPA)

我正在努力学习 Laravel 密室, 在将 'supports_credentials' 的 cors.php 配置值更改为 true 后,我被困在 CSRF 部分。我在连接 /sanctum/csrf-cookie 时成功收到 204 响应。但在那之后,当我尝试连接到“/login”时,出现错误 419 unknown status.

我已将其添加到我的 env 文件中

SESSION_DOMAIN=localhost:8000 // Laravel backend
SANCTUM_STATEFUL_DOMAINS=http://127.0.0.1:3000 // React Fronend

这是我的Cors.php

'paths' => ['api/*', 'sanctum/csrf-cookie'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => true,

这是我的 **React 代码 **

const handleSubmit = (e) => {
    e.preventDefault();

    apiClient.get("sanctum/csrf-cookie").then((response) => {
      apiClient
        .post(
          "api/login",{
            email: email,
            password: password,
          }).then((response) => {
              console.log(response);
           });
       });
  };

以下是 apiClient 的代码

import axios from "axios";

const apiClient = axios.create({
  baseURL: "http://127.0.0.1:8000/",
  withCredentials: true
});

export default apiClient;

API 在 Postman

上完全正常工作

你试试命令。 Php artisan optimize:clear