Laravel 5.6 как проверить авторизирован ли пользователь на сайте когда отправляет запрос через API?
Подскажите пожалуйста, как в Laravel 5.6 можно проверить авторизирован ли пользователь на сайте когда отправляет запрос через API? То есть нужно до того как "auth:api" авторизирует пользователя по токену проверить авторизирован ли он на сайте.
Аутентификация до аутентификации? Что-то странное вы там делаете. А скорее всего, просто не очень понимаете, что делаете. Расскажите, зачем вам это надо.
JhaoDa, Нужно проверить что только авторизированный пользователь отправляет запрос на определенные маршруты если это так то далее "auth:api" должен авторизировать его. Нужно убедиться что у него есть сессия и на сайте и токен который он прислал валидный. (я понимаю, что так обычно не делают, но это специфическое задание и это требование что нужно проверить и сессию на сайте и валидный токен)
alexfyodrv, зачем? Чем не устраивает auth:api, который сделает тоже самое?
Т.е. это выглядит так: давайте проверим, что в стакане вода, а потом отнесём его специально обученному человеку, который проверяет, что в стакане вода и он тоже проверит. А если там не вода, то никуда не отнесём, а выльем. Вопрос — а специально обученный человек вам тогда нафига?
JhaoDa, auth:api проверит токен который прислал пользователь, правильно? (например если я через постман отправляю валидный токен - это работает) нужно еще дополнительно проверить отправил ли это пользователь у которого есть сессия на сайте.
alexfyodrv, а, понятно. Вообще, это выглядит очень странно. Ибо API по природе своей должен быть stateless (в идеале), а значит никакого идентификатора сессии пользовательский агент передавать не должен.
В комментариях выяснилось, что всё это выглядит весьма странно, но ладно...
Ну простое решение видится таким: аутентифицировали через auth:api, поймали событие Authenticated, в нём попытались аутентифицировать по auth:web. Получилось — всё отлично. Не получилось — не всё отлично.
Ну и можно проверить идентичность пользователей после обоих попыток, типа