Dingo/Api и JWT auth
Я ищу способ реализовать аутентификацию с JWT и Dingo/Api. Я добавил пакет JWT в свой проект. добавленной 'jwt' => 'Dingo\Api\Auth\Provider\JWT',
в мой api.php
Аут часть
А также добавлен в мой BaseController
public function __construct()
{
$this->middleware('api.auth');
}
Как проверить, есть ли у пользователя разрешение (по ролям) на использование FormRequest? Имеет authorize
метод, однако я не уверен, как получить мой пользователь.
Поскольку я использую JWT, токен отправляется в заголовках.
2 ответа
Один из способов сделать это - добавить проверку роли в промежуточное ПО.
Вы можете попробовать добавить эту пользовательскую проверку в ту часть, где он проверяет JWT, предоставленный пользователем, поскольку именно в этой части вы можете определить, кто является пользователем, которому принадлежит токен.
Вы можете использовать Auth
Фасад для получения аутентифицированного пользователя:
$user = \Auth::user()
Для авторизации вы можете использовать политики, см. https://laravel.com/docs/5.6/authorization После включения вы можете проверить возможность пользователей в вашем authorize
метод (ы), например
public function authorize() {
$user = \Auth::user();
return $user->can("do-something");
}
Но есть много возможностей, как выполнить проверки авторизации, для получения более подробной информации прочитайте документы, упомянутые выше.