Laravel Passport说刷新令牌无效
问题描述:
因此,在一个Laravel应用程序中使用Passport在另一个Laravel应用程序中设置了API。几乎所有的工作都很好,但是当我尝试使用刷新令牌时,我在Passport端获得了刷新令牌无效的消息。我将刷新令牌存储在数据库字段中,长度为2000个字符,并想知道这还不够,或者我的刷新函数中的某些内容是错误的。有任何想法吗?Laravel Passport说刷新令牌无效
private function refreshToken($token) {
$http = $this->newClient();
try {
$response = $http->post($this->_url . '/oauth/token', [
'form_params' => [
'grant_type' => 'refresh_token',
'refresh_token' => $token->refresh_token,
'client_id' => $this->_clientId,
'client_secret' => $this->_secretKey,
'scope' => 'products orders',
],
]);
} catch(\Exception $ex) {
Log::error($ex);
$token = $this->newToken();
return $token;
}
$token = Token::saveToken($response);
return $token;
}
答
好的,找出导致问题的实际情况,并且不是刷新标记无效。这意味着它只是过期了,并且代码被设置为在这种情况下获得新的令牌。相反,当我检查令牌过期时,问题就出现了,但是在检查和使用它的呼叫之间,令牌会过期。所以,我添加了一些填充到期检查,现在它运行顺利。活到老,学到老。 :)
护照使用智威汤逊刷新令牌吗?如果是这样,你是否尝试检查JWT,看看它是否有正确的数据来获取新的访问令牌? – georaldc
我不认为它完全是JWT,而是类似的东西。我想我已经检查过,以确保包含刷新标记(90%确定它是),但我会在早上再次检查。 – llhilton