@dmalapsh

Как проверить авторизован ли пользователь при использовании laravel sanctum?

Проблема в том что при использовании стандартной конструкции Auth::check() всегда приходит false. Как я понимаю это происходит из-за того что sanctum читает токен только когда на маршрут повешен middleware. Но мне нужно чтобы пользователь мог быть и не авторизован в зависимости от этого я выполняю разные действия
  • Вопрос задан
  • 86 просмотров
Решения вопроса 2
@Mellorn
Дело в том, что при использовании стандартной конструкции, как вы это называете, используется guard по умолчанию, а это web. Конечно, если вы там ничего не меняли.
Исходя из этого, нужно либо явно указывать guard:
Auth::guard('sanctum')->check();
Либо изменить guard по умолчанию.
Ответ написан
@dmalapsh Автор вопроса
Как оказалось я просто плохо сконфигурировал приложение. Дело в том что в config/auth.php необходимо поставить дефолтный метод авторизации на api, а драйвер проверки на sanctum
'defaults' => [
        'guard' => 'api',
        'passwords' => 'users',
    ],

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'sanctum',
            'provider' => 'users',
            'hash' => true,
        ],
    ],
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы