关于OAuth 协议中刷新令牌存活时间的讨论
OAuth 2.0 協(xié)議里,刷新令牌用于在當(dāng)前訪問令牌到期時獲取新的訪問令牌。 有關(guān)更多信息,請參閱 OAuth 2.0 RFC。
以 LinkedIn 提供的 API 為例。
LinkedIn 提供在固定時間段內(nèi)有效的程序化刷新令牌。 默認(rèn)情況下,訪問令牌的有效期為 60 天,程序化刷新令牌的有效期為一年。 當(dāng)刷新令牌過期時,成員必須重新授權(quán)您的應(yīng)用程序。
當(dāng)您使用刷新令牌生成新的訪問令牌時,刷新令牌的生命周期或生存時間 (TTL) 與初始 OAuth 流中指定的相同(365 天),并且新的訪問令牌具有新的 TTL 60 天。
例如,在:
-
第 1 天 - 您的刷新令牌的 TTL 為 365 天,您的訪問令牌的 TTL 為 60 天。
-
第 59 天 - 如果您使用刷新令牌生成新的訪問令牌,則訪問令牌的 TTL 為 60 天,刷新令牌的 TTL 為 306 天 (365-59=306)。
-
第 360 天 - 如果您生成新的訪問令牌,您的訪問令牌和刷新令牌都將在 5 天后過期 (365-360=5),您必須使用授權(quán)流程讓成員重新授權(quán)您的應(yīng)用程序。
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.
刷新令牌可用于創(chuàng)建新的訪問令牌并允許長時間無縫操作。
但是,由于技術(shù)或政策原因,領(lǐng)英保留隨時撤銷刷新令牌或訪問令牌的權(quán)利。在這種情況下,利用刷新令牌的產(chǎn)品的期望是回退到標(biāo)準(zhǔn) OAuth 流程,并將登錄屏幕呈現(xiàn)給最終用戶。
獲取刷新令牌
使用授權(quán)代碼流獲取刷新令牌和訪問令牌。 如果您的應(yīng)用程序獲得了編程刷新令牌的授權(quán),則在您為訪問令牌交換授權(quán)代碼時將返回以下字段:
-
refresh_token — 應(yīng)用程序的刷新令牌。 此令牌必須保持安全。
-
refresh_token_expires_in — 刷新令牌到期前剩余的秒數(shù)。 刷新令牌通常比訪問令牌具有更長的生命周期。
總結(jié)
以上是生活随笔為你收集整理的关于OAuth 协议中刷新令牌存活时间的讨论的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是DNS,它有什么作用?(if有什么
- 下一篇: cortana是什么软件