У меня есть приложение со следующими настройками:
Laravel
Хост: appname.local: 8000
Переменные среды:
- SESSION_DRIVER = база данных
- SESSION_LIFETIME = 480
- SESSION_CONNECTION = mysql
- SESSION_DOMAIN = .appname.local
- SESSION_SECURE_COOKIE = false
- SESSION_COOKIE = appnameapi_session
- SANCTUM_STATEFUL_DOMAINS = '. Appname.local, localhost, 127.0.0.1'
Angular
Хост: appname.local: 4200
Что работает в данный момент:
- Я могу позвонить в csrf-cook Sanctum ie конечная точка, которая устанавливает токен CSRF в моем браузере.
- Затем я могу вызвать конечную точку входа моего API для аутентификации пользователя в моем приложении Laravel, используя Auth :: попытки (). Это создаст новую запись в таблице сеансов, как показано ниже
Angular методы для получения токена и аутентификации пользователя ![Angular methods to get token and login](https://i.stack.imgur.com/2OxkD.png)
Запись базы данных сеанса после успешной аутентификации ![Session database entry after successful authentication](https://i.stack.imgur.com/VSWpk.png)
Что не работает:
Последующие запросы к маршрутам которые защищены следующим промежуточным программным обеспечением: auth: sanctum все приводит к неаутентифицированным ответам. HTTP-запросы никогда не поступают на мои контроллеры.
auth: маршруты, защищенные Sanctum ![auth:sanctum protected routes](https://i.stack.imgur.com/TBHP2.png)
Но я вижу в консоли разработчика, что куки отправляются. Поэтому я не понимаю, почему Sanctum не получает аутентификацию ![enter image description here](https://i.stack.imgur.com/fr0Xo.png)
Я следовал нескольким учебникам и не могу понять, почему Laravel Аутентификация промежуточного программного обеспечения не может увидеть, что я уже аутентифицировал своего пользователя.
Кто-нибудь знает, что я могу делать неправильно?