摘要:實現目標延長過期時間活躍用戶在過期時,在用戶無感知的情況下動態刷新,做到一直在線狀態不活躍用戶在過期時,直接定向到登錄頁登錄返回字段如何簽發,請看上一篇推文,這里不做過多介紹。如果你有更好的做法,歡迎留言告知我,謝謝啦。
前言
記錄一下前后端分離下————token超時刷新策略!
需求場景昨天發了一篇記錄 前后端分離應用——用戶信息傳遞 中介紹了token認證機制,跟幾位群友討論了下,有些同學有這么一個疑惑:token失效了,應該怎么做?強制定向到登錄頁?
其實理論上如果是活躍用戶,token失效后,假如用戶正在操作表單,此時突然定向到登錄頁面,那用戶體驗太差了。
實現目標延長token過期時間
活躍用戶在token過期時,在用戶無感知的情況下動態刷新token,做到一直在線狀態
不活躍用戶在token過期時,直接定向到登錄頁
登錄返回字段如何簽發token,請看上一篇推文,這里不做過多介紹。先看看登錄接口返回的數據如下:
@Data public class LoginVo implements Serializable { private static final long serialVersionUID = 6711396581310450023L; //...省略部分業務字段 /** * token令牌 過期時間默認15day */ private String jwt; /** * 刷新token 過期時間可以設置為jwt的兩倍,甚至更長,用于動態刷新token */ private String refreshJwt; /** * token過期時間戳 */ private Long tokenPeriodTime; }
具體返回字段的意義請看注釋,這里再簡要說明:
jwt:用戶正常訪問接口時提交的token,過期時間設置長一些,15day吧
refreshJwt:刷新token 過期時間可以設置為jwt的兩倍,甚至更長,用于動態刷新token時候提交后臺驗證
tokenPeriodTime:token過期時間戳,前端每次調用接口前需要主動判斷是否已經過期,如果過期則提交refreshJwt訪問token刷新的接口進行刷新
動態刷新token前端檢測到token過期后,攜帶refreshJwt訪問后臺刷新token的接口,服務端在攔截器中依然對refreshJwt進行解析鑒權
假如refreshJwt也過期了,提示登錄過期,強制跳轉登錄頁
假如refreshJwt還在有效期,則簽發新的token返回,前端使用最新的token進行接口請求
總結如果是活躍用戶,那么允許他在refreshJwt過期時間與token過期時間的差值這段時間內,不停的動態刷新token,使其做到無感知的狀態下一直保持登錄狀態
如果用戶不活躍,在refreshJwt過期時間到了,依然沒有使用系統,那么將判定為不活躍用戶,此時應當重定向到登錄頁了
最后篇幅較短,主要是延續上一篇 前后端分離應用——用戶信息傳遞 遺留問題做一下總結。如果你有更好的做法,歡迎留言告知我,謝謝啦。后續會不定期更新原創文章,歡迎關注公眾號 「張少林同學」!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72935.html
摘要:簽發的用戶認證超時刷新策略這個模塊分離至項目權限管理系統與前后端分離實踐,感覺那樣太長了找不到重點,分離出來要好點。這樣在有效期過后的時間段內可以申請刷新。 簽發的用戶認證token超時刷新策略 這個模塊分離至項目api權限管理系統與前后端分離實踐,感覺那樣太長了找不到重點,分離出來要好點。 對于登錄的用戶簽發其對應的jwt,我們在jwt設置他的固定有效期時間,在有效期內用戶攜帶jw...
摘要:自己在前后端分離上的實踐要想實現完整的前后端分離,安全這塊是繞不開的,這個系統主要功能就是動態管理,這次實踐包含兩個模塊基于搭建的權限管理系統后臺編寫的前端管理。 自己在前后端分離上的實踐 要想實現完整的前后端分離,安全這塊是繞不開的,這個系統主要功能就是動態restful api管理,這次實踐包含兩個模塊,基于springBoot + shiro搭建的權限管理系統后臺bootshir...
摘要:自己在前后端分離上的實踐要想實現完整的前后端分離,安全這塊是繞不開的,這個系統主要功能就是動態管理,這次實踐包含兩個模塊基于搭建的權限管理系統后臺編寫的前端管理。 自己在前后端分離上的實踐 要想實現完整的前后端分離,安全這塊是繞不開的,這個系統主要功能就是動態restful api管理,這次實踐包含兩個模塊,基于springBoot + shiro搭建的權限管理系統后臺bootshir...
閱讀 3643·2021-11-19 09:40
閱讀 3099·2019-08-30 15:54
閱讀 2315·2019-08-30 15:44
閱讀 3197·2019-08-29 15:35
閱讀 3335·2019-08-29 12:22
閱讀 2864·2019-08-28 18:01
閱讀 3146·2019-08-26 13:54
閱讀 904·2019-08-26 12:24