2016-08-10 100 views
0

我正在構建一個允許用戶生成簡單電子郵件的應用程序 - 所以我想給用戶一個即插即忘的體驗。登錄一次,它只是works.when您更改您的podio帳戶,電子郵件是通過webhooks觸發Podio刷新令牌有效期限

據我所知,由Podio交付的podio刷新令牌存在28天。雖然這工作完全罰款最初,但在28天后,我的應用程序將停止爲跑道註冊的用戶工作,並期望它完美地工作。更加困難的是,無法確定刷新令牌何時到期以及何時會得到新的刷新令牌。在28天期限到期前是否會有1小時,2小時或3小時?

要求用戶每28天登錄一次,這樣我就可以得到新的刷新令牌聽起來不太可行。

所以我的問題是

1)如果是我的用戶

2)無效的令牌生成一個新的刷新令牌令牌僅無效訪問不刷新令牌。爲什麼這樣?

我看到的波迪奧論壇,類似的問題,但他們都不回答

https://help.podio.com/hc/en-us/community/posts/206669587-Get-new-refresh-token

回答

5

之前,當你請求一個訪問令牌,你將得到的回覆是一個JSON有效載荷是這樣的:

{ 
    "access_token": ACCESS_TOKEN, 
    "token_type": "bearer", 
    "expires_in": EXPIRES_IN, 
    "refresh_token": REFRESH_TOKEN, 
    "scope": GRANTED_SCOPE_STRING, 
    "ref": 
    { 
    "type": "user", 
    "id": USER_ID 
    } 
} 

它具有access_token,refresh_token以及access_token有效的時間。

如果您直接在沒有SDK /客戶端庫的情況下進行API調用,則需要在過期時處理刷新access_token的操作。要實現這一點,您可能需要存儲獲取訪問令牌的時間戳以及訪問令牌請求的響應數據,並進行比較,並確定訪問令牌在每次API調用之前是否過期。如果令牌已過期,則需要提供現有的refresh_token,並使用this API call獲取新的訪問令牌詳細信息,並在商店中更新時間時間戳。

如果您使用的是SDK可能具有自動刷新訪問令牌(如波迪奧-RB,波迪奧-PHP,波迪奧網)

+0

我已經使用波迪奧的PHP SDK,它會自動刷新的access_token一旦到期(8小時後過期),但不刷新refresh_token,這將在28天內過期如何避免過期refresh_token –

+0

刷新令牌永不過期 - 這是刷新令牌的整個點。刷新令牌將在用戶撤銷對您的應用程序的訪問或更改密碼等時過期(成爲未經授權的)。 –

+0

是的,refresh_token是長期存在的,但它們也已到期,在podio情況下它已過期28天 –