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();
}
我正在使用 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();
}