亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

刷新令牌refresh token詳解

張軍 22400 0

在學習oauth2.0協議的時候,對于刷新令牌refresh token感覺很困惑。主要是為啥需要刷新令牌,以及刷新令牌是如何工作的,技術細節是啥?比如通過refresh token可以讓access token永久不過期嗎?

下面就針對這兩個問題進行詳細分析。

為什么需要刷新令牌

刷新令牌的生命周期

1. 授權服務頒發刷新令牌

2. 第三方服務使用刷新令牌

定時檢測方式和現場發現方式

3. 授權服務校驗刷新令牌

1. 接收刷新令牌請求,驗證基本信息

2. 重新生成訪問令牌

為什么需要刷新令牌

如果access token超時時間很長,比如14天,由于第三方軟件獲取受保護資源都要帶著access token,這樣access token的攻擊面就比較大。

如果access token超時時間很短,比如1個小時,那其超時之后就需要用戶再次授權,這樣的頻繁授權導致用戶體驗不好。

引入refresh token,就解決了【access token設置時間比較常,容易泄露造成安全問題,設置時間比較短,又需要頻繁讓用戶授權】的矛盾。

刷新令牌的生命周期

1. 授權服務頒發刷新令牌

第三方軟件得到一個訪問令牌的同時,也會得到一個刷新令牌,refresh_token是與第三方軟件、用戶關聯在一起的

2. 第三方服務使用刷新令牌

什么時候來使用刷新令牌呢?

定時檢測方式

在第三方軟件收到訪問令牌的同時,也會收到訪問令牌的過期時間expires_in。一個設計良好的第三方應用,應該將expires_in值保存下來并定時檢測;如果發現expires_in即將過期,則需要利用refresh_token去重新請求授權服務,以便獲取新的、有效的訪問令牌。

現場發現方式

比如第三方軟件訪問受保護資源的時候,突然收到一個訪問令牌失效的響應,此時第三方軟件立即使用refresh_token來請求一個訪問令牌,以便繼續代表用戶使用他的數據。

綜合來看的話,定時檢測的方式,需要額外開發一個定時任務;而“現場”發現,就沒有這種額外的工作量。具體采用哪一種方式,你可以結合自己的實際情況。不過呢,建議采用定時檢測這種方式,因為它可以帶來“提前量”,以便有更好的主動性,而現場發現就有點被動了。

3. 授權服務校驗刷新令牌

第三方軟件發送請求

授權服務器會先比較grant_type和 refresh_token的值,確認是請求刷新令牌的操作

1. 接收刷新令牌請求,驗證基本信息

1)和頒發訪問令牌前的驗證流程一樣,這里我們也需要驗證第三方軟件是否存在。

在使用刷新令牌的時候,也是需要應用傳遞它的app_id和app_sercet的

2)驗證刷新令牌是否存在,要保證傳過來的刷新令牌的合法性。

3)還需要驗證刷新令牌是否屬于該第三方軟件。授權服務是將頒發的刷新令牌與第三方軟件、當時的授權用戶綁定在一起的,因此這里需要判斷該刷新令牌的歸屬合法性。

2. 重新生成訪問令牌

訪問令牌access_token,其與第三方軟件、用戶,還有授權范圍scope綁定在一起。

在生成access_token的時候,要考慮下面的場景。

1)若access_token未超時,那么進行refresh_token有下面幾種方式:

不會改變access_token,但超時時間會刷新,相當于續期access_token

更新access_token的值,我們建議【統一更新access_token的值】

在spring security oauth中,其處理方式是仍返回原access_token及refresh_token,但是并不會續期,expires_in保持原樣,所以我們看到下面的響應

2)若access_token超時了,但是refresh_token未超時,那么更新access_token的值,但是刷新令牌refresh_token呢?推薦刷新令牌是一次性的,使用之后就會失效。

注意:通過refresh_token刷新后,返回來assessToken和refresh_token,但refresh_token過期時間不會重新刷新。

3)若refresh_token也超時了,就需要將刷新令牌和訪問令牌都放棄,相當于回到了系統的初始狀態,只能讓用戶小重新授權了。

謝謝關注張軍博客


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲精品久久久久福利网站 | 国产成人亚洲综合网站不卡 | 亚洲欧美日韩成人一区在线 | 久久视频在线免费观看 | 色综合网亚洲精品久久 | 免费观看h片 | 天天草天天操 | 在线一区播放 | 国产精品免费视频一区 | 国产精品亚洲欧美大片在线看 | 深夜网站在线观看 | 国产精品一区二区四区 | 日日碰日日摸日日澡视频播放 | 久久免费视频在线观看 | 4虎永免费最新永久免费地址 | 在线播放亚洲视频 | 四虎影视永久地址www成人 | 久久久国产免费影院 | 久久久久中文字幕 | 在线免费观看中文字幕 | 奇米777影视成人四色 | 久草在线视频免费播放 | 国产成+人欧美+综合在线观看 | 色综合久久加勒比高清88 | 久久久久国产一级毛片高清版 | 久热这里只有 | 欧美性色生活片天天看99 | 最新欧美精品一区二区三区不卡 | 一个色在线 | 中文线码中文高清播放中 | 天天操夜夜添 | 欧美一级a俄罗斯毛片 | 亚洲欧美精品一区二区 | 欧美色欧美亚洲高清在线视频 | 欧美一级aa免费毛片 | 日本欧美一区二区三区在线 | 第一福利影院 | 亚洲免费一区 | 4虎在线| 九九热免费观看 | 在线观看国产精美视频 |