Я с удивлением обнаружил, что уже существовал компетентный ответ на вопрос, заданный другим пользователем, который был добавлен в StackOverflow как минимум за 4 года до этого вопроса. См. раздел Пользовательская база аутентификации пользователя на основе ответа на вызов API. В то время я тщательно искал решение и не смог найти комплексного и комплексного решения, поэтому и добавил его.
Как могу ли я осуществлять вход в Laravel через REST API, а не через веб-запросы/ответы?
Я работал над решением на основе Laravel, в котором все данные извлекались через API в удаленную службу, а не чем веб-запросы. Все взаимодействия с данными было легко закодировать, но единственная проблема заключалась в том, что если взаимодействие с базой данных осуществляется через API, то вход в систему не мог полагаться на данные, локальные для веб-сайта, ориентированного на клиента. Мне нужна система входа на основе API.
Как мне этого добиться?
Я искал решение, в котором аутентификация и вход в Laravel управляются API, а не Интернет, но я не смог найти ни одного связного ответа.
Пожалуйста, примите участие в этом обсуждении, поскольку эта потребность не очень хорошо поддерживается за пределами box от Laravel.
Я предоставил собственный ответ, чтобы рассказать, как я решил эту проблему, в надежде, что это поможет кому-то еще. Несмотря на это, я считаю, что это обсуждение не завершено и требует дальнейшего участия.
Laravel поставляется с несколькими заранее разработанными решениями для аутентификации, которые вы можете запустить с помощью нескольких профессиональных команд. К ним относятся:
- стандартная проверка подлинности таблицы пользователей
- OAuth2 (через пакет Laravel Passport)
- Аутентификация на основе социальных сетей (через пакет Laravel Socialite)
Я столкнулся с этой проблемой несколько месяцев назад и Я искал ответ в Google и Stackoverflow. Я нашел полезные статьи, которые помогли указать путь, и они цитируются. Потребовались некоторые усилия, чтобы понять, как их склеить, и выполнить поэтапную отладку, чтобы устранить недостатки.
Ответ дан в надежде, что он поможет другим - и мне, где я чтобы сделать то же самое снова в будущем.
Предположения и область применения:
- вы создали свой собственный API например https://example.com/login и https://example.com/logout
- у вас есть веб-сайт, требующий аутентификации, но не через модели, таблицы или социальные сети.
- ваш API управляет взаимодействием с таблицами, включая вход/выход пользователя.
- вы используете надстройку Laravel Passport для аутентификации OAuth2 (подтверждение @ Шуво Иосифу за то, что обратил на это мое внимание)
Подробнее здесь: https://stackoverflow.com/questions/619 ... in-laravel
Мобильная версия