Dingo / Api и JWT auth - PullRequest
       37

Dingo / Api и JWT auth

0 голосов
/ 09 сентября 2018

Я ищу способ реализации аутентификации с помощью JWT и Dingo / Api. Я добавил пакет JWT в свой проект. Добавлен 'jwt' => 'Dingo\Api\Auth\Provider\JWT', в мою api.php часть авторизации.

А также добавлено в мой BaseController

public function __construct()
    {
        $this->middleware('api.auth');
    }

Как проверить, имеет ли пользователь (по роли) разрешение на использование FormRequest? У него есть метод authorize, но я не уверен, как получить моего пользователя.

Поскольку я использую JWT, токен отправляется в заголовках.

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Вы можете использовать Auth Фасад, чтобы получить аутентифицированного пользователя:

$user = \Auth::user()

Для авторизации вы можете использовать политики, см. https://laravel.com/docs/5.6/authorization После включения вы можете проверить способность пользователей в ваших authorize методах, например,

public function authorize() {
    $user = \Auth::user();
    return $user->can("do-something");
}

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

0 голосов
/ 10 сентября 2018

Один из способов сделать это - добавить проверку роли в промежуточное ПО.

Вы можете попытаться добавить эту пользовательскую проверку в часть, где он проверяет JWT, предоставленный пользователем, так как это часть, где вы можете определить, кто является пользователем, которому принадлежит токен.

...