欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于JwtToken使用-重點看一下過期時間

 更新時間:2022年07月05日 09:29:26   作者:香草天空Sky  
這篇文章主要介紹了關(guān)于JwtToken使用-重點看一下過期時間,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

JwtToken使用

最近在做一個app,登錄驗證是用的jwt的token驗證,今天來記錄一下.....

下面是具體步驟

1.添加jar包

然后是jwt token的具體實現(xiàn)

三個常量分別是

  • 保存在服務端的密鑰
  • jwt令牌的有效時間
  • 刷新令牌的有效時間

jwt內(nèi)置了許多加密編碼,我這里采用Hs256加密,將自己設定的特有密碼進行base編碼,生成一個key

這一段是生成一個usertoken

  • jwt token包含三部分 分別是header,payload(載荷),sign(簽名)
  • header用來設置自己token的類型和使用的編碼,payload存放用戶的安全信息,因為jwt提供的編碼是可逆的,所以不要存放用戶的關(guān)鍵信息
  • sign是token的一個簽名,由headr,payload以及key決定,當客戶端發(fā)來一個key的時候,只要校驗簽名是否正確即可

這一段代碼和上一張圖在同一個方法內(nèi),主要用于實現(xiàn)令牌的刷新,本來刷新時間應該存放在redis里,但是我條件有限,只能先存放在數(shù)據(jù)庫中

token的校驗從傳來的token中獲得載荷payload,重新生成一個token,拿到新token的簽名sign,將新的sign和舊sign比較,當兩個sign一致時則通過驗證

這一段代碼和上一段在同一個方法內(nèi),當連個sign不一致時說明客戶端token被篡改,直接返回一個null,在攔截器中做判斷當為null時直接回到登陸界面

當t oken過期 ExpiredJwtException e 會自動捕獲,我們在捕獲到這個異常時,進行令牌的刷新,然后返回這個新的令牌

兩個sign一致就直接返回原先的token。

令牌的刷新將之前存放在數(shù)據(jù)中刷新有效時間取出,與當前時間進行比較,如果小于當前的刷新有效時間則刷新令牌,然后更新數(shù)據(jù)庫,返回新的token字符串,

如果該用戶連已經(jīng)長時間未使用app,導致當前時間已經(jīng)超過了令牌刷新的時間,則刪除數(shù)據(jù)庫中的對應數(shù)據(jù),token返回null;

客戶端的token是放在request的header中發(fā)到后臺的,所以需要從heaer中取出

拿到的token是這樣子的,所以需要對這個字符串按照空格截取,拿到真正有用的token

我們拿到校驗返回過來的字符串,當這個字符串為空時,客戶端返回到登陸界面

當兩個token不相等時,說明校驗傳回來的token是新的,那么我們修改響應頭中token為新的token,然后程序繼續(xù)執(zhí)行

........

第一次使用jwt,對jwt安全性還很不了解......只能先這樣了

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • IDEA2019.2.2配置Maven3.6.2打開出現(xiàn)Unable to import Maven project

    IDEA2019.2.2配置Maven3.6.2打開出現(xiàn)Unable to import Maven project

    這篇文章主要介紹了IDEA2019.2.2配置Maven3.6.2打開出現(xiàn)Unable to import Maven project,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • maven如何使用slf4j輸出日志到文件

    maven如何使用slf4j輸出日志到文件

    這篇文章主要介紹了maven如何使用slf4j輸出日志到文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • mybatis單元測試過程(無需啟動容器)

    mybatis單元測試過程(無需啟動容器)

    在MyBatis中,單元測試無需啟動容器即可進行,主要涉及Configuration類、Executor接口及其實現(xiàn)類,以及XMLMapperBuilder的作用,Configuration類是配置的承載者,負責初始化并解析配置文件,Executor接口及其實現(xiàn)類
    2024-09-09
  • testNG項目通過idea Terminal命令行執(zhí)行的配置過程

    testNG項目通過idea Terminal命令行執(zhí)行的配置過程

    這篇文章主要介紹了testNG項目通過idea Terminal命令行執(zhí)行,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • Spring Boot Admin實現(xiàn)服務健康預警功能

    Spring Boot Admin實現(xiàn)服務健康預警功能

    這篇文章主要介紹了Spring Boot Admin實現(xiàn)服務健康預警功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 詳細介紹MyBatis 3.4.0版本的功能

    詳細介紹MyBatis 3.4.0版本的功能

    這篇文章主要給大家介紹了關(guān)于MyBatis 3.4.0版本的功能,文中只列舉部分重要的內(nèi)容,詳細內(nèi)容看官方說明,需要的朋友可以參考借鑒,下面跟著小編一起來學習學習吧。
    2017-06-06
  • JDK動態(tài)代理之ProxyGenerator生成代理類的字節(jié)碼文件解析

    JDK動態(tài)代理之ProxyGenerator生成代理類的字節(jié)碼文件解析

    這篇文章主要為大家詳細介紹了JDK動態(tài)代理之ProxyGenerator生成代理類的字節(jié)碼文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • SpringBoot集成Dubbo啟用gRPC協(xié)議

    SpringBoot集成Dubbo啟用gRPC協(xié)議

    這篇文章主要介紹了SpringBoot集成Dubbo啟用gRPC協(xié)議,以及與原生 gRPC 在代碼編寫過程中的區(qū)別。感興趣的同學可以參考閱讀
    2023-04-04
  • jvm垃圾回收GC調(diào)優(yōu)基礎(chǔ)原理分析

    jvm垃圾回收GC調(diào)優(yōu)基礎(chǔ)原理分析

    談到調(diào)優(yōu),這一定是針對特定場景、特定目的的事情, 對于 GC 調(diào)優(yōu)來說,首先就需要清楚調(diào)優(yōu)的目標是什么?從性能的角度看,通常關(guān)注三個方面,內(nèi)存占用(footprint)、延時(latency)和吞吐量(throughput)
    2022-01-01
  • 深入理解Java并發(fā)編程之ThreadLocal

    深入理解Java并發(fā)編程之ThreadLocal

    本文主要介紹了Java并發(fā)編程之ThreadLocal,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08

最新評論