带有 Sanctum 身份验证的 Laravel 8 (Reactjs SPA)

Posted

技术标签:

【中文标题】带有 Sanctum 身份验证的 Laravel 8 (Reactjs SPA)【英文标题】:Laravel 8 with Sanctum Authentication (Reactjs SPA) 【发布时间】:2021-07-17 00:51:53 【问题描述】:

我正在努力学习 Laravel sanctum, 在将“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工匠优化:清除 它神奇地起作用。但是怎么做呢? Laravel 制作缓存 【参考方案1】:

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

【讨论】:

谢谢它的工作,但你能描述它背后的原因吗?

以上是关于带有 Sanctum 身份验证的 Laravel 8 (Reactjs SPA)的主要内容,如果未能解决你的问题,请参考以下文章

如何选择使用 Laravel Sanctum 进行身份验证?

Laravel Sanctum 返回 404 而不是未经身份验证的 401

Laravel sanctum 检查用户是不是在没有重定向的情况下通过身份验证

Sanctum Laravel 8 用于 API 身份验证的问题(不会在注销时删除令牌)

Laravel Sanctum Token API 身份验证在 Postman 中不起作用

带有 Vuejs 的 Laravel 7.x Sanctum (SPA) 总是返回 401 Unauthorized