Задать вопрос
@amigo567

Как настроить аутентификацию laravel + vue (разные домены)?

Сделал как здесь:
https://codecourse.com/articles/the-complete-guide...
с одинаковыми доменами, но разными портами работает (только пришлось в cors.php добавить путь = '/', иначе после нажатия кнопки login preflight запрос проблемный был)
бэк: laravel-sanctum-vue.test
фронт: laravel-sanctum-vue.test:5173

Теперь хочу сделать так, чтобы работало с разными доменами.
бэк: laravel-sanctum-vue.test (та же самая связка protocol + domain + port)
фронт: changed-sanctum-vue.test:5173 (поменялся только домен)

это ведь также может быть полезно, если к существующему и опубликованному на vps бэку хочется подключиться локально (с localhost или (https://local.{prod_domain}.test:5173, добавленный в hosts windows файл)

Но были разные проблемы с cookie, выяснил, что если same_site заголовок = lax, то обязательно должны быть одинаковые домены, поменять на Null нельзя, как минимум, google chrome конвертирует обратно в lax, поменял на 'none', но в таком случае браузер требует https,
vite на фронте сделал:
import mkcert from 'vite-plugin-mkcert'
server: {
host: 'changed-sanctum-vue.test',
https: true
}
+ в main.js:
axios.defaults.baseURL = 'https://laravel-sanctum-vue.test';
axios.defaults.withCredentials = true;
axios.defaults.withXSRFToken = true;

бэк тоже перевёл на https (в laravel herd есть кнопка).
И добавил в env:
SESSION_SECURE_COOKIE = true
SESSION_SAME_SITE= none
и SANCTUM_STATEFUL_DOMAINS заменил на:
APP_URL=https://laravel-sanctum-vue.test
SESSION_DOMAIN=https://laravel-sanctum-vue.test
SANCTUM_STATEFUL_DOMAINS=https://changed-sanctum-vue.test:5173

Отдельно сайты открываются:
фронт: https://changed-sanctum-vue.test:5173/
бэк: https://laravel-sanctum-vue.test/

Но при /login теперь 419 CSRF token mismatch.

Чатботы предлагали сделать
1) SESSION_DOMAIN =null
2) в AppServiceProvider
public function boot(): void
{
\URL::forceScheme('https');
}
3) в cors.php:
'paths' => ['*'],
но это ничего не изменило

https://laravel-sanctum-vue.test/sanctum/csrf-cookie запрос
679e1ce4bcef1575376943.jpeg

https://laravel-sanctum-vue.test/login:
679e1d01ea479868662633.jpeg
  • Вопрос задан
  • 30 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы