#laravel #laravel-passport #api-authorization
#laravel #laravel-паспорт #api-авторизация
Вопрос:
Я создаю общедоступный API, позволяющий сторонним веб-сайтам взаимодействовать с моим приложением, мне было интересно, каким будет наилучший способ управления аутентификацией. В настоящее время я изучаю возможность использования Laravel Passport, но я немного смущен тем, как должен работать рабочий процесс.
Должен ли я создавать клиентов для своих пользователей, чтобы затем запрашивать их собственные токены, или у меня должен быть только один клиент, который я использую для запроса токенов и предоставления токенов пользователям.
Я бы очень хотел использовать Laravel Passport, поскольку он интегрирует OAuth2, который является очень хорошо известным стандартом аутентификации, но, судя по документации Passport, он, похоже, не написан с целью создания общедоступного API, поскольку все «методы» создания клиента выполняются с помощью команд artisan, а не с помощью методов контроллера.
Обновить
В настоящее время я ищу, чтобы позволить пользователям создавать клиент OAuth, написав контроллер, который использует тот же код, что и в php artisan passport:client
команде, но находится в контроллере, поэтому его можно выполнить с веб-страницы интерфейса. Затем это даст пользователю идентификатор клиента и секрет, который они затем могут использовать для выполнения стандартного потока OAuth, запрашивая с ним токен доступа. Я не уверен, насколько это правильно или это слишком глубоко для довольно простого API, но это то, о чем я думаю
Ответ №1:
Вы можете попробовать использовать эту библиотеку. https://jwt-auth.readthedocs.io/en/develop /
Это должно работать для ваших целей.
Комментарии:
1. Я изучил это, но я чувствую, что это было бы не так хорошо, как использование passport для моего варианта использования, поток авторизации в passport кажется более существенным