2017-06-28 86 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

好的,找出導致問題的實際情況,並且不是刷新標記無效。這意味着它只是過期了,並且代碼被設置爲在這種情況下獲得新的令牌。相反,當我檢查令牌過期時,問題就出現了,但是在檢查和使用它的呼叫之間,令牌會過期。所以,我添加了一些填充到期檢查,現在它運行順利。活到老,學到老。 :)