所以,使用Passport在一个Laravel应用程序中设置了一个API,我正在另一个Laravel应用程序中使用它。几乎一切都运行良好,但是当我尝试使用刷新令牌时,我在Passport端获得刷新令牌无效的消息。我将刷新令牌存储在长度为2000个字符的数据库字段中,并想知道这是不够的,还是我的刷新功能中的某些内容是错误的。有什么想法吗?
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;
}
答案 0 :(得分:0)
好的,弄清楚导致问题的实际情况,并不是刷新令牌无效。这意味着它刚刚过期,并且代码设置为在这种情况下获得新令牌。相反,问题是当我检查令牌到期时,但在该检查和使用它的呼叫之间,令牌将过期。所以,我在过期检查中添加了一些填充,现在它正在顺利运行。活到老,学到老。 :)