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
我正在努力学习 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