Laravel Sanctum auth: промежуточное программное обеспечение sanctum с Angular ответом без аутентификации SPA - PullRequest
1 голос
/ 11 апреля 2020

У меня есть приложение со следующими настройками:

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

Запись базы данных сеанса после успешной аутентификации Session database entry after successful authentication

Что не работает:

Последующие запросы к маршрутам которые защищены следующим промежуточным программным обеспечением: auth: sanctum все приводит к неаутентифицированным ответам. HTTP-запросы никогда не поступают на мои контроллеры.

auth: маршруты, защищенные Sanctum auth:sanctum protected routes

Но я вижу в консоли разработчика, что куки отправляются. Поэтому я не понимаю, почему Sanctum не получает аутентификацию enter image description here

Я следовал нескольким учебникам и не могу понять, почему Laravel Аутентификация промежуточного программного обеспечения не может увидеть, что я уже аутентифицировал своего пользователя.

Кто-нибудь знает, что я могу делать неправильно?

...