2017-06-28 63 views
0

因此,在一个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; 
} 
+0

护照使用智威汤逊刷新令牌吗?如果是这样,你是否尝试检查JWT,看看它是否有正确的数据来获取新的访问令牌? – georaldc

+0

我不认为它完全是JWT,而是类似的东西。我想我已经检查过,以确保包含刷新标记(90%确定它是),但我会在早上再次检查。 – llhilton

回答

0

好的,找出导致问题的实际情况,并且不是刷新标记无效。这意味着它只是过期了,并且代码被设置为在这种情况下获得新的令牌。相反,当我检查令牌过期时,问题就出现了,但是在检查和使用它的呼叫之间,令牌会过期。所以,我添加了一些填充到期检查,现在它运行顺利。活到老,学到老。 :)