Ошибка несоответствия токена CSRF Laravel 11 при регистрации APIPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка несоответствия токена CSRF Laravel 11 при регистрации API

Сообщение Anonymous »

В настоящее время я разрабатываю приложение 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»