天天看點

關于OAuth 協定中重新整理令牌存活時間的讨論

OAuth 2.0 協定裡,重新整理令牌用于在目前通路令牌到期時擷取新的通路令牌。 有關更多資訊,請參閱 OAuth 2.0 RFC。

以 LinkedIn 提供的 API 為例。

LinkedIn 提供在固定時間段内有效的程式化重新整理令牌。 預設情況下,通路令牌的有效期為 60 天,程式化重新整理令牌的有效期為一年。 當重新整理令牌過期時,成員必須重新授權您的應用程式。

關于OAuth 協定中重新整理令牌存活時間的讨論

當您使用重新整理令牌生成新的通路令牌時,重新整理令牌的生命周期或生存時間 (TTL) 與初始 OAuth 流中指定的相同(365 天),并且新的通路令牌具有新的 TTL 60 天。

例如,在:

第 1 天 - 您的重新整理令牌的 TTL 為 365 天,您的通路令牌的 TTL 為 60 天。

第 59 天 - 如果您使用重新整理令牌生成新的通路令牌,則通路令牌的 TTL 為 60 天,重新整理令牌的 TTL 為 306 天 (365-59=306)。

第 360 天 - 如果您生成新的通路令牌,您的通路令牌和重新整理令牌都将在 5 天後過期 (365-360=5),您必須使用授權流程讓成員重新授權您的應用程式。

and to clarify: if your access token expired, and it was refreshed using the refresh token --> that doesn’t make the refresh token duration reset. The refresh token’s timeout will continue to tick from the moment you first logged in.

重新整理令牌可用于建立新的通路令牌并允許長時間無縫操作。

但是,由于技術或政策原因,領英保留随時撤銷重新整理令牌或通路令牌的權利。在這種情況下,利用重新整理令牌的産品的期望是回退到标準 OAuth 流程,并将登入螢幕呈現給最終使用者。

擷取重新整理令牌

使用授權代碼流擷取重新整理令牌和通路令牌。 如果您的應用程式獲得了程式設計重新整理令牌的授權,則在您為通路令牌交換授權代碼時将傳回以下字段:

refresh_token — 應用程式的重新整理令牌。 此令牌必須保持安全。

refresh_token_expires_in — 重新整理令牌到期前剩餘的秒數。 重新整理令牌通常比通路令牌具有更長的生命周期。

繼續閱讀