摘要:泄露了怎么辦沒關系它很快就會過期。但是在一些安全要求較高的系統中第二次操作是需要重新登錄的即使沒有過期因為中間有幾個小時用戶是沒有操作的系統猜測用戶已離開并關閉會話。
中國有句老話, 既生瑜何生亮, 既然有我周瑜在世, 為什么老天還要一個諸葛亮啊?
同樣的, 眾所周知, 在 OAuth 2.0 授權協議中, 也有兩個令牌 token , 分別是 access_token 和 refresh_token, 為什么已經有了 access_token, 還需要 refresh_token 呢?
我們先看下面兩者的介紹
下面是 OAuth 2.0 中的 token 工作流程圖
回歸主題,
這兩個令牌的主要區別如下:
access_token 時效短, refresh_token 時效長, 比如 access_token 有效期1個小時, refresh_token 有效期1天
access_token 是授權服務器一定頒發的, 而 refresh_token 卻是可選的
access_token 過期后, 可以使用 refresh_token 重新獲取, 而 refresh_token 過期后就只能重新授權了, 也沒有 refresh_refresh_token
access_token 和 資源服務器和授權服務器交互, 而 refresh_token 只和 授權服務器交互
access_token 頒發后可以直接使用, 而使用 refresh_token 需要客戶端秘鑰 client_secret
接下來, 我們繼續看兩個令牌在下面場景的應用, 假設有一個用戶需要在后臺管理界面上操作6個小時。
1 頒發一個有效性很長的 access_token, 比如 6 個小時, 或者可以更長, 這樣用戶只需要剛開始登錄一次, access_token 可以一直使用, 直到 access_token 過期, 然后重復, 這種是不安全的, access_token 的時效太長, 也就失去了本身的意義。
2 頒發一個1小時有效期的 access_token, 過期后重新登錄授權, 這樣用戶需要登錄 6 次, 安全倒是有了, 但是用戶體驗極差
3 頒發1小時有效期的 access_token 和6小時有效期的 refresh_token, 當 access_token 過期后(或者快要過期的時候), 使用 refresh_token 獲取一個新的 access_token, 直到 refresh_token 過期, 用戶重新登錄, 這樣整個過程中,用戶只需要登錄一次, 用戶體驗好。
access_token 泄露了怎么辦? 沒關系, 它很快就會過期。
refresh_token 泄露了怎么辦? 沒關系, 使用 refresh_token 是需要客戶端秘鑰 client_secret 的。
4 用戶登錄后, 在后臺管理頁面上操作1個小時后, 離開了一段時間, 然后 5個小時后, 回到管理頁面繼續操作, 此時 refresh_token 有效期6個小時, 一直沒有過期, 也就可以換取新的 access_token, 用戶在這個過程中, 可以不用重復登錄。但是在一些安全要求較高的系統中, 第二次操作是需要重新登錄的, 即使 refresh_token 沒有過期, 因為中間有幾個小時, 用戶是沒有操作的, 系統猜測用戶已離開, 并關閉會話。
所以, 得出的結論是, refresh_token 是一個很巧妙地設計, 提升了用戶體驗的同時, 又保證了安全性。
另外, 在 OAuth 2.0 安全最佳實踐中, 推薦 refresh_token 是一次性的, 什么意思呢? 使用 refresh_token 獲取 access_token 時, 同時會返回一個 新的 refresh_token, 之前的 refresh_token 就會失效, 但是兩個 refresh_token 的絕對過期時間是一樣的, 所以不會存在 refresh_token 快過期就獲取一個新的, 然后重復,永不過期的情況。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125680.html
摘要:既生瑜,何生亮人家當然不是以賣萌為生的,賣萌不可恥,但是是有它的用處的。對未設置或者小于設置的圖片進行轉換,以的格式被的所使用而對于大于的圖片用進行解析。配置工欲善其事必先利其器。 url-loader vs file-loader 既生瑜,何生亮? 人家當然不是以賣萌為生的,賣萌不可恥,但是url-loader是有它的用處的。url-loader對未設置或者小于limit設置的圖片進...
摘要:而在這背后則是建立在基礎之上。簡化模式的授權許可簡化模式的授權更加適用于移動端的以及應用,因為他們的安全性并不能夠得到保證。除此之外,服務也不會對應用的做唯一性表示驗證,依賴回調的地址。 showImg(https://segmentfault.com/img/bVvTab); 在日常的網站中,我們經常會看見一些來自社交網站的登錄按鈕,類似使用facebook,twitter登錄等。而...
摘要:相信大家對微信公眾號,小程序也都不陌生,那么在開發公眾號,小程序的時候需要調用到微信的接口,固然就會遇到的問題,有哪些問題,以及怎么解決的呢,我們繼續往下看。刷新的方法相關資料微信 前言 微信的影響力眾所周知,越來越多的人也都離不開它,工作,生活,社交的好幫手。相信大家對微信公眾號,小程序也都不陌生,那么在開發公眾號,小程序的時候需要調用到微信的接口,固然就會遇到token的問題,有哪...
摘要:相信大家對微信公眾號,小程序也都不陌生,那么在開發公眾號,小程序的時候需要調用到微信的接口,固然就會遇到的問題,有哪些問題,以及怎么解決的呢,我們繼續往下看。刷新的方法相關資料微信 前言 微信的影響力眾所周知,越來越多的人也都離不開它,工作,生活,社交的好幫手。相信大家對微信公眾號,小程序也都不陌生,那么在開發公眾號,小程序的時候需要調用到微信的接口,固然就會遇到token的問題,有哪...
閱讀 3735·2023-01-11 11:02
閱讀 4244·2023-01-11 11:02
閱讀 3050·2023-01-11 11:02
閱讀 5180·2023-01-11 11:02
閱讀 4737·2023-01-11 11:02
閱讀 5534·2023-01-11 11:02
閱讀 5313·2023-01-11 11:02
閱讀 3990·2023-01-11 11:02