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");
}

Но есть много возможностей, как выполнить проверки авторизации, для получения более подробной информации прочитайте документы, упомянутые выше.

Другие вопросы по тегам