Laravel护照授权令牌在生成新令牌时到期

时间:2017-10-30 11:11:22

标签: laravel api oauth-2.0 laravel-passport

我正在使用带有护照认证的laravel 5.5 for API Routes。我正在使用不记名令牌。 问题是接受旧生成的令牌代替未经身份验证的令牌。 步骤:

  • 创建一个承载令牌。用它。它工作正常。
  • 创建另一个没有注销的令牌,它工作正常。
  • 现在,如果我使用第一个创建的令牌,它也可以正常工作。它不应该工作,但它被接受。

我能做到这一点有什么办法吗? 提前谢谢。

1 个答案:

答案 0 :(得分:3)

一种可能的解决方案是: 在创建新令牌之前检查,如果旧令牌存在并删除此令牌。要做到这一点:

创建名为 OauthAccessToken

的模型

更新您的用户模型以下

/**
 * 1:n zu access token, we need to logout users
 *
 * @return \Illuminate\Database\Eloquent\Relations\HasMany
 */
public function accessTokens()
{
    return $this->hasMany(OauthAccessToken::class);
}

现在您可以查看并删除用户的所有令牌

if ($user->accessTokens->count() > 0) {
    $user->accessTokens()->delete();
}