Laravel Passport自定义验证适用于任何/ oauth / token请求

时间:2019-06-15 22:31:15

标签: laravel oauth-2.0 laravel-passport

在创建请求的令牌之前,我需要验证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 :(得分:0)

使用您的登录方式

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