Пользовательская проверка Laravel Passport для любого запроса / oauth / token - PullRequest
0 голосов
/ 16 июня 2019

Мне нужно проверить дополнительные поля в моей таблице users, прежде чем я создаю запрошенные токены, но я не могу найти простой способ сделать это с помощью Passport.

Я нахожу похожие рабочие инструменты, которые возвращают токен, используя $user->createToken(), но я не могу найти кого-то, покрывающего все параметры по умолчанию /oauth/token, такие как refresh_token

Также я вижу, Passport есть несколько простых способов настройки столбца имени пользователя и проверки пароля, но я думаю, что это не покрывает мои потребности.

Обновление

Я не уверен, является ли это лучшим решением, но в Laravel 5.8 в пакете passport есть эта функция validateForPassportPasswordGrant(), которая позволяет добавлять некоторые дополнительные условия перед тем, как завершить процесс аутентификации.

class User extends Authenticatable
{

    public function validateForPassportPasswordGrant($password)
    {
        if ($this->active != true) {
            throw OAuthServerException::accessDenied('The account is not active');
        }

        return Hash::check($password, $this->password);
    }
}

1 Ответ

0 голосов
/ 16 июня 2019

В вашем методе входа

if (Auth::attempt(['email' => $request->email, 'password' => $request->password, 'is_active' => 1, 'username' => $request->username])) {
   // create a token here
}
...