成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

前后端分離——token超時(shí)刷新策略

hatlonely / 1581人閱讀

摘要:實(shí)現(xiàn)目標(biāo)延長過期時(shí)間活躍用戶在過期時(shí),在用戶無感知的情況下動態(tài)刷新,做到一直在線狀態(tài)不活躍用戶在過期時(shí),直接定向到登錄頁登錄返回字段如何簽發(fā),請看上一篇推文,這里不做過多介紹。如果你有更好的做法,歡迎留言告知我,謝謝啦。

前言

記錄一下前后端分離下————token超時(shí)刷新策略!

需求場景

昨天發(fā)了一篇記錄 前后端分離應(yīng)用——用戶信息傳遞 中介紹了token認(rèn)證機(jī)制,跟幾位群友討論了下,有些同學(xué)有這么一個(gè)疑惑:token失效了,應(yīng)該怎么做?強(qiáng)制定向到登錄頁?

其實(shí)理論上如果是活躍用戶,token失效后,假如用戶正在操作表單,此時(shí)突然定向到登錄頁面,那用戶體驗(yàn)太差了。

實(shí)現(xiàn)目標(biāo)

延長token過期時(shí)間

活躍用戶在token過期時(shí),在用戶無感知的情況下動態(tài)刷新token,做到一直在線狀態(tài)

不活躍用戶在token過期時(shí),直接定向到登錄頁

登錄返回字段

如何簽發(fā)token,請看上一篇推文,這里不做過多介紹。先看看登錄接口返回的數(shù)據(jù)如下:

@Data
public class LoginVo implements Serializable {

    private static final long serialVersionUID = 6711396581310450023L;

    //...省略部分業(yè)務(wù)字段
    
    /**
     * token令牌 過期時(shí)間默認(rèn)15day
     */
    private String jwt;
    
    /**
     * 刷新token 過期時(shí)間可以設(shè)置為jwt的兩倍,甚至更長,用于動態(tài)刷新token
     */
    private String refreshJwt;
    
     /**
     * token過期時(shí)間戳
     */
    private Long tokenPeriodTime;

}

具體返回字段的意義請看注釋,這里再簡要說明:

jwt:用戶正常訪問接口時(shí)提交的token,過期時(shí)間設(shè)置長一些,15day吧

refreshJwt:刷新token 過期時(shí)間可以設(shè)置為jwt的兩倍,甚至更長,用于動態(tài)刷新token時(shí)候提交后臺驗(yàn)證

tokenPeriodTime:token過期時(shí)間戳,前端每次調(diào)用接口前需要主動判斷是否已經(jīng)過期,如果過期則提交refreshJwt訪問token刷新的接口進(jìn)行刷新

動態(tài)刷新token

前端檢測到token過期后,攜帶refreshJwt訪問后臺刷新token的接口,服務(wù)端在攔截器中依然對refreshJwt進(jìn)行解析鑒權(quán)

假如refreshJwt也過期了,提示登錄過期,強(qiáng)制跳轉(zhuǎn)登錄頁

假如refreshJwt還在有效期,則簽發(fā)新的token返回,前端使用最新的token進(jìn)行接口請求

總結(jié)

如果是活躍用戶,那么允許他在refreshJwt過期時(shí)間與token過期時(shí)間的差值這段時(shí)間內(nèi),不停的動態(tài)刷新token,使其做到無感知的狀態(tài)下一直保持登錄狀態(tài)

如果用戶不活躍,在refreshJwt過期時(shí)間到了,依然沒有使用系統(tǒng),那么將判定為不活躍用戶,此時(shí)應(yīng)當(dāng)重定向到登錄頁了

最后

篇幅較短,主要是延續(xù)上一篇 前后端分離應(yīng)用——用戶信息傳遞 遺留問題做一下總結(jié)。如果你有更好的做法,歡迎留言告知我,謝謝啦。后續(xù)會不定期更新原創(chuàng)文章,歡迎關(guān)注公眾號 「張少林同學(xué)」!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/72935.html

相關(guān)文章

  • 簽發(fā)的用戶認(rèn)證token超時(shí)刷新策略

    摘要:簽發(fā)的用戶認(rèn)證超時(shí)刷新策略這個(gè)模塊分離至項(xiàng)目權(quán)限管理系統(tǒng)與前后端分離實(shí)踐,感覺那樣太長了找不到重點(diǎn),分離出來要好點(diǎn)。這樣在有效期過后的時(shí)間段內(nèi)可以申請刷新。 簽發(fā)的用戶認(rèn)證token超時(shí)刷新策略 這個(gè)模塊分離至項(xiàng)目api權(quán)限管理系統(tǒng)與前后端分離實(shí)踐,感覺那樣太長了找不到重點(diǎn),分離出來要好點(diǎn)。 對于登錄的用戶簽發(fā)其對應(yīng)的jwt,我們在jwt設(shè)置他的固定有效期時(shí)間,在有效期內(nèi)用戶攜帶jw...

    e10101 評論0 收藏0
  • api權(quán)限管理系統(tǒng)與前后分離實(shí)踐

    摘要:自己在前后端分離上的實(shí)踐要想實(shí)現(xiàn)完整的前后端分離,安全這塊是繞不開的,這個(gè)系統(tǒng)主要功能就是動態(tài)管理,這次實(shí)踐包含兩個(gè)模塊基于搭建的權(quán)限管理系統(tǒng)后臺編寫的前端管理。 自己在前后端分離上的實(shí)踐 要想實(shí)現(xiàn)完整的前后端分離,安全這塊是繞不開的,這個(gè)系統(tǒng)主要功能就是動態(tài)restful api管理,這次實(shí)踐包含兩個(gè)模塊,基于springBoot + shiro搭建的權(quán)限管理系統(tǒng)后臺bootshir...

    bawn 評論0 收藏0
  • api權(quán)限管理系統(tǒng)與前后分離實(shí)踐

    摘要:自己在前后端分離上的實(shí)踐要想實(shí)現(xiàn)完整的前后端分離,安全這塊是繞不開的,這個(gè)系統(tǒng)主要功能就是動態(tài)管理,這次實(shí)踐包含兩個(gè)模塊基于搭建的權(quán)限管理系統(tǒng)后臺編寫的前端管理。 自己在前后端分離上的實(shí)踐 要想實(shí)現(xiàn)完整的前后端分離,安全這塊是繞不開的,這個(gè)系統(tǒng)主要功能就是動態(tài)restful api管理,這次實(shí)踐包含兩個(gè)模塊,基于springBoot + shiro搭建的權(quán)限管理系統(tǒng)后臺bootshir...

    tianlai 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<