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

Laravel passport Authorization token expire on generating new token

我正在使用 laravel 5.5 和 API 路由的护照身份验证。我正在使用不记名令牌。 问题是旧生成的令牌被接受而不是未经身份验证。 步骤 :

有什么办法可以做到这一点吗? 提前致谢。

一个可能的解决方案是: 在创建新令牌之前检查,如果旧令牌存在并删除它。为此:

创建一个名为 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();
}