2017-01-19 11 views
1

私は現在Podioの統合に取り組んでおり、refresh_tokenが期限切れになっているかどうか、そしてそのような場合に新しいリフレッシュトークンを取得する正確な流れは何か分かりません。Podio Oauth - リフレッシュトークンの寿命

記事:

Podio Refresh token Expiry - それは(かなり最近のユーザー名にPodioを持っている人からの回答を)

https://help.podio.com/hc/en-us/community/posts/206669587-Get-new-refresh-tokenを期限切れにしない - それは有効期限が切れ、あなたが応答の一部としてそれを得ることはありません元気?結論が出ていない議論があります

私は多くのサービスとOAuthの実装で作業していましたが、リフレッシュトークンが実際に無効になっているからです。だから28日が経過すれば、ユーザーは再認証する必要がありますか?あるいはトークンは無効にされますが、 "grant"はまだ存在しますか?私はgrant == refreshトークンに近づくために使用されているので、かなり混乱していると言わざるを得ないが、私はOAuthの仕様を理解している。 また、リフレッシュトークンをdbに保存したいだけです。 私はそれを試してみたいですが、私は28日待たずにいます。

ドキュメントには、リフレッシュトークンの有効期間が明確に示されていません。

私はPodioの誰かがこのことについて明確な答えを得たいと思っています。リフレッシュトークンが期限切れになるかどうか、リフレッシュトークンを取得する正確なフローは何ですか?また、ユーザーの再認証が必要なのは、非アクティブ(API呼び出しなし)または固定量のみの場合と、どのような場合(非アクティブまたは時間の経過)

答えて

5

ここには2つの部分があり、アクセストークンリフレッシュトークンがあります。

アクセストークンは、expires_in属性で指定された間隔の後に失効します。

リフレッシュトークンは、28日以上使用しないと期限切れになる可能性があります。リフレッシュトークンを使用して新しいアクセストークンを要求するたびに、タイマーがリセットされ、リフレッシュトークンの有効期限が切れるまでにさらに28日かかることがあります。 28日間に新しいアクセストークンを定期的に取得する場合、同じリフレッシュトークンを無期限に使用できます。

POST /oauth/token HTTP/1.1 
Host: podio.com 
Content-Type: application/x-www-form-urlencoded 
Cache-Control: no-cache 

grant_type=password&username=******&password=******&client_id=******&client_secret=****** 

レスポンスボディ::新しいアクセスを取得する

{ 
    "access_token": "******9c2", 
    "expires_in": 28800, 
    "token_type": "bearer", 
    "scope": "global:all", 
    "ref": { 
    "type": "user", 
    "id": ****** 
    }, 
    "refresh_token": "******04a" 
} 

例リクエストトークン初期アクセスを取得し、トークン(アスタリスクで編集さ値)をリフレッシュする

例HTTPリクエストトークン(同じリフレッシュトークンを使用):

注:リクエスト本体の余分な空白文字が問題を引き起こす可能性があります。これは私が実験していたときにぶつかった問題です。

要求:

POST /oauth/token HTTP/1.1 
Host: api.podio.com 
Content-Type: application/x-www-form-urlencoded 
Cache-Control: no-cache 

grant_type=refresh_token&client_id=******&client_secret=******&refresh_token=******04a 

レスポンスボディ:

{ 
    "access_token": "******676", 
    "expires_in": 28800, 
    "token_type": "bearer", 
    "scope": "global:all", 
    "ref": { 
    "type": "user", 
    "id": ****** 
    }, 
    "refresh_token": "******04a" 
} 

それはリフレッシュトークンの値が変更されないことに注意することが重要だと新しいアクセストークンを取得するために、繰り返し使用することができます。


TL; DR - リフレッシュトークンを使用しない場合、28日後に有効期限が切れます。リフレッシュトークンを使用して新しいアクセストークンを取得すると、リフレッシュトークンの有効期限がリセットされます。

+1

偉大な答え、私はあなたのドキュメントでそれぞれの使用後に28日間の情報を延長する寿命を含むことをお勧めします:) – Raidmaster