2017-06-28 22 views
0

したがって、別のLaravelアプリケーションで使用しているPassportを使用して、1つのLaravelアプリケーションでAPIを設定してください。ほとんどすべてがうまくいきますが、リフレッシュトークンを使用しようとすると、パスポート側でリフレッシュトークンが無効であるというメッセージが表示されます。私はリフレッシュ・トークンをデータベース・フィールドに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を使用していますか?もしそうなら、JWTを調べて、新しいアクセストークンを取得するための正しいデータがあるかどうか確認してみましたか? – georaldc

+0

私はそれがJWTだ​​とは限りませんが、似たようなものです。私はリフレッシュトークンが含まれていることを確認することを考えました(90%確信しています)。しかし、朝にもう一度チェックします。 – llhilton

答えて

0

は、実際にその原因となった問題が起こっていたものを考え出し、それが無効であるトークンリフレッシュませんでした。つまり、期限切れとなり、その場合は新しいトークンを取得するようにコードが設定されています。代わりに、私は期限切れのトークンをチェックするときに問題が起こっていましたが、そのチェックとそれを使用している呼び出しの間で、トークンの有効期限が切れていました。そこで、有効期限チェックにいくつかのパディングを追加しました。これでスムーズに動作します。生活し、学びます。 :)

関連する問題