Я строю приложение Laravel 11 и обработку запросов входа в систему с помощью Axios. Я сталкиваюсь с ошибкой 419 при попытке войти в систему, даже если в инструментах моего браузера в инструментах разработчика моего браузера присутствуют в инструментах разработчика моего браузера.// Fetch CSRF token before making HTTP requests
const getCsrfToken = async () => {
const response = await axios.get("/sanctum/csrf-cookie");
return response;
};
const getCookie = (name) => {
const cookies = document.cookie.split("=");
return cookies[1];
};
const handleLogin = async (email, password) => {
try {
await getCsrfToken(); // Ensure CSRF token is fetched
// Now make the login request
const response = await axios.post(
"http://localhost:8000/login",
{
email,
password,
},
{
headers: {
"Content-Type": "application/json",
accept: "application/json",
"X-XSRF-TOKEN": getCookie("XSRF-TOKEN"), // Retrieve the CSRF token
},
withCredentials: true,
}
);
if (response.status === 200) {
checkAuth(); // Call checkAuth only if login was successful
}
} catch (error) {
console.error("Error during login:", error);
}
};
< /code>
Вот моя конфигурация cors.php для разрешенного происхождения: < /p>
'paths' => ['*'],
'allowed_methods' => ['*'],
'allowed_origins' => [env('FRONTEND_URL', 'http://localhost:3000')],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => true,
< /code>
my .env -файл включает в себя следующую конфигурацию: < /p>
APP_URL=http://localhost:8000
FRONTEND_URL=http://localhost:3000
SANCTUM_STATEFUL_DOMAINS=http://localhost:3000
SESSION_DOMAIN=localhost
< /code>
Ожидаемое поведение: < /strong>
Я ожидаю, что запрос входа в систему будет должным образом аутентифицирован с использованием токена CSRF из файлов cookie. cookie.
Подробнее здесь: https://stackoverflow.com/questions/790 ... in-cookies