Laraval Santcum 419 Ошибка «Несоответствие токена CSRF» с nuxt

У меня есть приложение с серверной частью Laravel, использующей Sanctum. Для интерфейса я использую Nuxt3 с nuxt-auth-sanctum.

Когда я запускаю интерфейс и серверную часть на своем локальном компьютере, все работает нормально, и я могу войти в систему. Для локального интерфейса я использую http://localhost:2765, а для серверной части — http://127.0.0.1. :8000 (то же самое, что localhost:8000).

Теперь я хочу вызвать серверную часть веб-сервера с URL-адресом https://dev.domain.de . Поскольку мне приходится использовать тот же домен, теперь я запускаю локальный интерфейс с http://local.domain.de:2765.

Я правильно получаю токен из https://dev.domain.de/sanctum/csrf-cookie, но маршрут входа не имеет правильного токена, и я получаю ошибку 419 с «несоответствием токена CSRF».

Я попытался получить файл cookie с помощью useCookie('XSRF-TOKEN'). С локальной версией это работает, но со второй версией не работает.

В конфигурации Sanctum у меня есть:

'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf(
    '%s%s%s',
    'admin.domain.de,localhost:2765,local.domain.de:2765',
    Sanctum::currentApplicationUrlWithPort(),
    env('FRONTEND_URL') ? ','.parse_url(env('FRONTEND_URL'), PHP_URL_HOST) : ''
))),

Конфигурация сеанса:

'domain' => env('SESSION_DOMAIN', 'domain.de'), // local/web version
SESSION_DOMAIN=localhost // local-only version
'same_site' => env('SESSION_SAME_SITE', 'lax'),
'http_only' => env('SESSION_HTTP_ONLY', true),

Вот скриншот локальной версии, все в порядке:

Это не сработало:

Что мне нужно изменить в конфигах, чтобы можно было использовать токен из куки?

Я попробовал, например, это: SESSION_DOMAIN=.domain.de или: SESSION_SAME_SITE=нет

Отвечает ли это на ваш вопрос? Святилище Laravel не авторизовано

Mr. Kenneth 29.05.2024 02:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
1
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если вы получаете ошибку 419, возможно, у вас неправильная конфигурация CORS. Здесь вы можете найти более подробную информацию о правильной настройке приложения Laravel для nuxt-auth-sanctum — https://manchenff.gitbook.io/nuxt-auth-sanctum/authentication/spa-cookie.

Обычно проблема заключается в том, что домен внешнего интерфейса не включен в список доменов allowed_origins или stateful.

Не стесняйтесь открывать проблему в репозитории GitHub, если возникнут какие-либо проблемы, я постараюсь помочь!

Ответ принят как подходящий

Я думаю, проблема заключалась в вызове API с https из локального http-интерфейса.

В скрипте разработки в package.json я добавил «--https true», и теперь у меня также есть локальная страница nuxt с https.

Другие вопросы по теме

Почему я вижу свои запросы на вкладке «Сеть» в инструментах разработчика, когда использую Nuxtjs (SSR)
Как создать вспомогательные методы для рендеринга компонентов в nuxt
Как автоматически распознавать определения типов в проекте Nuxt.js без явного импорта в VSCode?
Пользовательский плагин в nuxt 3 имеет неизвестный тип
Открытие диалогового окна Healdess UI (модальное) через другое диалоговое окно (модальное) автоматически закрывает предыдущее диалоговое окно (модальное)? (Добавлена ​​ссылка на воспроизведение CodeSandBox)
Флипбук Nuxt 3
Как я могу настроить nuxt 3, чтобы при непосредственном открытии статической страницы, созданной с помощью npm rungenerate, она работала правильно?
Nuxt3: выдача входного значения из формы регистрации
Перенаправление промежуточного программного обеспечения Nuxt 3 на основе кода страны IP не работает при развертывании в Netlify
Как издеваться над Supabase в Vitest?