#laravel #nuxt.js #laravel-sail
#laravel #nuxt.js #laravel-sail
Вопрос:
Я хочу использовать Nuxt.js для моего интерфейса и laravel sanctum в качестве моего поставщика серверной аутентификации. Как я должен установить SESSION_DOMAIN
ключ в файле .env в моем проекте laravel.
Также я должен отредактировать что-нибудь в части объекта сервера в nuxt.config.js
файле, чтобы это работало?
Ответ №1:
Когда вы используете Sanctum с SPA, например, Nuxt, у вас есть возможность использовать либо API, либо файлы cookie / сеансы. Если ваше приложение является приложением первого производителя в том же домене верхнего уровня, Laravel рекомендует использовать подход, основанный на файлах cookie, чтобы вы могли воспользоваться защитой CSRF. Библиотеки Axios и Angular Http обрабатывают CSRF из коробки, поэтому вам не нужно слишком беспокоиться об обработке заголовков запросов [1].
В вашем случае я предполагаю, что ваше приложение является первым и находится в том же домене верхнего уровня. Таким образом, ваше SESSION_DOMAIN
значение будет, например .domain.com
. Также вам также нужно установить SANCTUM_STATEFUL_DOMAINS=domain.com
. Обычно у SESSION_DOMAIN
вас будет только основной домен, который использует ваше приложение, в то время SANCTUM_STATEFUL_DOMAINS
как у вас будут все поддомены (если таковые имеются), которые использует ваш интерфейс.
Ответ №2:
Для работы с Sanctum мы должны сначала ознакомиться с несколькими вещами. Мы должны использовать наш SPA и серверную часть API в том же домене, например, интерфейс на domain.com и API на api.domain.com . Мы не можем установить интерфейс на domain.com и бэкэнд (API) на another-domain.com . Клиент должен иметь возможность включать файлы cookie при каждом запросе, отправляемом на серверную часть.
домен сеанса — это имя домена внешнего интерфейса без протокола и порта.
Когда вы работаете на local, вы должны установить для него значение localhost, а когда вы работаете на сервере, вы должны установить имя домена.
пожалуйста, следуйте этому примеру nuxt-laravel-sanctum-auth
Комментарии:
1. Да, я понимаю это, но если домен серверной части — ничто (URL серверной части laravel sail буквально просто » localhost» ). Что я должен установить для ключа SESSION_DOMAIN, а также что я должен установить для моего интерфейса axios baseUrl?