У меня есть приложение с серверной частью 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=нет






Если вы получаете ошибку 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.
Отвечает ли это на ваш вопрос? Святилище Laravel не авторизовано