日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

既生瑜何生亮 access_token VS refresh_token

發(fā)布時間:2023/12/4 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 既生瑜何生亮 access_token VS refresh_token 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

中國有句老話, 既生瑜何生亮, 既然有我周瑜在世, 為什么老天還要一個諸葛亮啊?

同樣的, 眾所周知, 在 OAuth 2.0 授權(quán)協(xié)議中, 也有兩個令牌 token , 分別是 access_token 和 refresh_token, 為什么已經(jīng)有了 access_token, 還需要 refresh_token 呢?

我們先看下面兩者的介紹

  • access_token 訪問令牌, 它是一個用來訪問受保護資源的憑證

  • refresh_token 刷新令牌, 它是一個用來獲取access token的憑證

下面是 OAuth 2.0 中的 token 工作流程圖

兩個令牌的主要區(qū)別如下:

  • access_token 時效短, refresh_token 時效長, 比如 access_token 有效期1個小時, refresh_token 有效期1天

  • access_token 是授權(quán)服務(wù)器一定頒發(fā)的, 而 refresh_token 卻是可選的

  • access_token 過期后, 可以使用 refresh_token 重新獲取, 而 refresh_token 過期后就只能重新授權(quán)了, 也沒有 refresh_refresh_token

  • access_token 和 資源服務(wù)器和授權(quán)服務(wù)器交互, 而 refresh_token 只和授權(quán)服務(wù)器交互

  • access_token 頒發(fā)后可以直接使用, 而使用 refresh_token 需要客戶端秘鑰 client_secret

接下來, 我們繼續(xù)看兩個令牌在下面場景的應(yīng)用, 假設(shè)有一個用戶需要在后臺管理界面上操作6個小時。

1 頒發(fā)一個有效性很長的 access_token, 比如 6 個小時, 或者可以更長, 這樣用戶只需要剛開始登錄一次, access_token 可以一直使用, 直到 access_token 過期, 然后重復(fù), 這種是不安全的, access_token 的時效太長, 也就失去了本身的意義。

2 頒發(fā)一個1小時有效期的 access_token, 過期后重新登錄授權(quán), 這樣用戶需要登錄 6 次, 安全倒是有了, 但是用戶體驗極差

3 頒發(fā)1小時有效期的 access_token 和6小時有效期的 refresh_token, 當(dāng) access_token 過期后(或者快要過期的時候), 使用 refresh_token 獲取一個新的 access_token, 直到 refresh_token 過期, 用戶重新登錄, 這樣整個過程中,用戶只需要登錄一次, 用戶體驗好。

access_token 泄露了怎么辦? 沒關(guān)系, 它很快就會過期。
refresh_token 泄露了怎么辦? 沒關(guān)系, 使用 refresh_token 是需要客戶端秘鑰 client_secret 的。

4 用戶登錄后, 在后臺管理頁面上操作1個小時后, 離開了一段時間, 然后 5個小時后, 回到管理頁面繼續(xù)操作, 此時 refresh_token 有效期6個小時, 一直沒有過期, 也就可以換取新的 access_token, 用戶在這個過程中, 可以不用重復(fù)登錄。但是在一些安全要求較高的系統(tǒng)中, 第二次操作是需要重新登錄的, 即使 refresh_token 沒有過期, 因為中間有幾個小時, 用戶是沒有操作的, 系統(tǒng)猜測用戶已離開, 并關(guān)閉會話。

所以, 得出的結(jié)論是, refresh_token 是一個很巧妙地設(shè)計, 提升了用戶體驗的同時, 又保證了安全性。

另外, 在 OAuth 2.0 安全最佳實踐中, 推薦 refresh_token 是一次性的, 什么意思呢? 使用 refresh_token 獲取 access_token 時, 同時會返回一個 新的 refresh_token, 之前的 refresh_token 就會失效, 但是兩個 refresh_token 的絕對過期時間是一樣的, 所以不會存在 refresh_token 快過期就獲取一個新的, 然后重復(fù),永不過期的情況。??

往期推薦:

OAuth 2.0 的探險之旅

OAuth 2.0 擴展協(xié)議之 PKCE

OAuth 2.1 的進化之路

OAuth 2.1 帶來了哪些變化

總結(jié)

以上是生活随笔為你收集整理的既生瑜何生亮 access_token VS refresh_token的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。