В настоящее время я разрабатываю приложение Laravel 11 с интерфейсом React и сталкиваюсь с постоянной ошибкой «несоответствие токена CSRF» при попытке зарегистрировать пользователя через API. Я попробовал несколько способов решения этой проблемы, но безуспешно.
Подробности:
В моем приложении React есть форма, которая отправляет регистрацию пользователя. данные в мой бэкэнд Laravel. Вот соответствующий код для моего компонента Register:
import React, { useState } from 'react';
import axios from 'axios';
export default function Register() {
const [formData, setFormData] = useState({
first_name: '',
last_name: '',
email: '',
password: '',
});
const handleChange = (e) => {
setFormData({
...formData,
[e.target.name]: e.target.value,
});
};
const handleSubmit = async (e) => {
e.preventDefault();
// Get CSRF token from the meta tag
const csrfTokenMeta = document.head.querySelector('meta[name="csrf-token"]').content;
if (csrfTokenMeta) {
console.log('CSRF Token:', csrfTokenMeta);
} else {
console.error('CSRF Token meta tag not found.');
}
try {
const response = await axios.post('http://localhost:8000/api/register', formData, {
headers: {
'Content-Type': 'application/json',
'X-CSRF-TOKEN': csrfTokenMeta, // Include CSRF token
},
});
alert('User registered successfully!');
console.log(response.data);
} catch (error) {
console.error('Registration error:', error);
alert('Error registering user. Please try again.');
}
};
return (
{/* Form fields for first name, last name, email, and password */}
);
}
Проблема:
Когда я отправляю форму, я получаю следующую ошибку:
{message: "CSRF token mismatch.", exception: "Symfony\Component\HttpKernel\Exception\HttpException"}
Что я пробовал:
Проверка токена CSRF:
Я убедился, что токен CSRF правильно извлекается и отправляется заголовки запросов.
Конфигурация сеанса:
Проверено, что config/session.php настроен на использование файлового драйвера, а для Same_site установлено значение слабый.
Конфигурация CORS:
Обновлен файл config/cors.php, чтобы обеспечить включение конечной точки API:
'paths' => ['api/*'],
'allowed_origins' => ['*'],
Проверка сетевых запросов
Проверил сетевые запросы в инструментах разработчика браузера и подтвердил, что токен CSRF правильно отправляется в заголовках.
Кэш очищен
php artisan config:cache
php artisan route:cache
php artisan cache:clear
Инициализация токена CSRF
В моем app.blade.php я включил токен CSRF следующим образом:
Подробнее здесь: https://stackoverflow.com/questions/790 ... gistration
Ошибка несоответствия токена CSRF Laravel 11 при регистрации API ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Конечная точка API не выполняет проверку токена CSRF в Sanctum – несоответствие токена CSRF
Anonymous » » в форуме Php - 0 Ответы
- 152 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Ошибка несоответствия токена CSRF в ответ при отправке формы в приложении laravel 11
Anonymous » » в форуме Php - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-