Laravel упрощает аутентификацию API с помощью Laravel Passport, который обеспечивает полную реализацию сервера OAuth2.
Спецификация OAuth 2.0 представляет собой гибкую инфраструктуру авторизации, которая описывает ряд разрешений («методов») для клиентского приложения для получения доступатокен (который представляет собой разрешение пользователя на доступ клиента к своим данным), который может использоваться для аутентификации запроса к конечной точке API.
- Предоставление кода авторизации
- Неявное предоставление
- Предоставление учетных данных владельца ресурса
- Предоставление учетных данных клиента
- Предоставление пароля
- Обновление предоставления токена
КакиеГрант OAuth 2.0, который мне следует использовать?
Грант - это метод получения токена доступа.Решение о том, какие гранты реализовать, зависит от типа клиента, который будет использовать конечный пользователь, и опыта, который вы хотите для своих пользователей.
![Grants](https://i.stack.imgur.com/Sr5L0.png)
Реализация (1-е лицо / Собственное приложение / Предоставление пароля)
Создание приложения
Паспорт запросит у вас дополнительную информацию о вашем клиенте и предоставит вам идентификатор клиента и секрет:
php artisan passport:client --password
Запрос токенов
# http://laravel-app.tld/oauth/token
[
'grant_type' => 'password' # Grant type
'client_id' => 'client-id' # Application client ID
'client_secret' => 'client-secret' # Application client secret
'username' => 'email@domain.tld' # Form request
'password' => 's3cr3T' # Form request
'scope' => '*' # Scopes
]