Laravel 8 与 Sanctum 身份验证(Reactjs SPA)

时间:2021-04-22 19:06:23

标签: reactjs laravel single-page-application laravel-8 laravel-sanctum

我正在努力学习 Laravel sanctum, 在将“supports_credentials”的 cors.php 配置值更改为 true 后,我被困在 CSRF 部分。我在连接 /sanctum/csrf-cookie 时成功收到 204 响应。但之后尝试连接到“/登录”时,我收到错误 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

上运行良好

1 个答案:

答案 0 :(得分:0)

你试试命令。 PHP工匠优化:清除