在创建请求的令牌之前,我需要验证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);
}
}
答案 0 :(得分:0)
使用您的登录方式
if (Auth::attempt(['email' => $request->email, 'password' => $request->password, 'is_active' => 1, 'username' => $request->username])) {
// create a token here
}