最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

JwtToken使用

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

下面是具體步驟

1.添加jar包

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

三個常量分別是

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

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

這一段是生成一個usertoken

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

這一段代碼和上一張圖在同一個方法內(nèi),主要用于實現(xiàn)令牌的刷新,本來刷新時間應(yīng)該存放在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ù)庫中的對應(yīng)數(shù)據(jù),token返回null;

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

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

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

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

........

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

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

相關(guān)文章

  • 關(guān)于Rabbitmq死信隊列及延時隊列的實現(xiàn)

    關(guān)于Rabbitmq死信隊列及延時隊列的實現(xiàn)

    這篇文章主要介紹了關(guān)于Rabbitmq死信隊列及延時隊列的實現(xiàn),TTL就是消息或者隊列的過期功能,當消息過期就會進到死信隊列,死信隊列和普通隊列沒啥區(qū)別,然后我們只需要配置一個消費者來消費死信隊列里面的消息就可以了,需要的朋友可以參考下
    2023-08-08
  • 詳解Java中$符的各種使用場景

    詳解Java中$符的各種使用場景

    在Java編程中,我們會經(jīng)??吹?符的身影,比如經(jīng)常在配置文件中看到$符號作為變量占位符,用于在運行時動態(tài)地獲取變量值。本文將詳細介紹$符號在Java編程中的各種應(yīng)用場景,以幫助您更好地理解和運用這個符號,感興趣的小伙伴可以收藏一下
    2023-04-04
  • SpringBoot?web靜態(tài)資源映射實現(xiàn)步驟詳解

    SpringBoot?web靜態(tài)資源映射實現(xiàn)步驟詳解

    在springBoot中的靜態(tài)資源的映射是通過SpringMVC中的resourceHttpRequestHandler來進行實現(xiàn)的。在該請求映射器中默認規(guī)定了,SpringBoot會將classPath或者ServletContext下的/static?(/public、/resources?或?/META-INF/resources)目錄中,存放靜態(tài)資源
    2022-09-09
  • SpringBoot+Mybatis-plus實現(xiàn)分頁查詢的示例代碼

    SpringBoot+Mybatis-plus實現(xiàn)分頁查詢的示例代碼

    本文主要介紹了SpringBoot+Mybatis-plus實現(xiàn)分頁查詢的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-02-02
  • Java排序算法之直接插入、快排和希爾排序詳解

    Java排序算法之直接插入、快排和希爾排序詳解

    這篇文章主要給大家介紹了Java排序算法中的直接插入、快排和希爾排序,文中有詳細的圖文解釋和代碼示例,對我們學習Java算法有一定的幫助,感興趣的同學可以參考閱讀下
    2023-07-07
  • Mybatisplus創(chuàng)建Spring?Boot工程打包錯誤的解決方式

    Mybatisplus創(chuàng)建Spring?Boot工程打包錯誤的解決方式

    最近在實戰(zhàn)springboot遇到了一些坑,記錄一下,下面這篇文章主要給大家介紹了關(guān)于Mybatisplus創(chuàng)建Spring?Boot工程打包錯誤的解決方式,文中通過圖文介紹的介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • java CompletableFuture實現(xiàn)異步編排詳解

    java CompletableFuture實現(xiàn)異步編排詳解

    這篇文章主要為大家介紹了java CompletableFuture實現(xiàn)異步編排詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • SpringBoot使用AOP記錄接口操作日志的方法

    SpringBoot使用AOP記錄接口操作日志的方法

    日志記錄量是很大的,所以只記錄關(guān)鍵地方并按期歸檔,最好是存在如elasticsearch中,如果存在數(shù)據(jù)庫中,分表是不錯的選擇,這篇文章主要介紹了SpringBoot使用AOP記錄接口操作日志的方法,需要的朋友可以參考下
    2022-08-08
  • 使用Post方法模擬登陸爬取網(wǎng)頁的實現(xiàn)方法

    使用Post方法模擬登陸爬取網(wǎng)頁的實現(xiàn)方法

    下面小編就為大家?guī)硪黄褂肞ost方法模擬登陸爬取網(wǎng)頁的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • SpringBoot實現(xiàn)單元測試示例詳解

    SpringBoot實現(xiàn)單元測試示例詳解

    單元測試(unit testing),是指對軟件中的最小可測試單元進行檢查和驗證。這篇文章主要為大家介紹了C語言實現(xiàn)單元測試的方法,需要的可以參考一下
    2022-11-11

最新評論

南江县| 化隆| 达尔| 班玛县| 张家界市| 册亨县| 富锦市| 沙洋县| 阿克苏市| 和田县| 思茅市| 灵武市| 芦山县| 眉山市| 隆回县| 南昌县| 兰西县| 廊坊市| 阿拉善盟| 晋中市| 彝良县| 彭山县| 鸡西市| 呼图壁县| 湄潭县| 乐业县| 云和县| 普安县| 绥滨县| 榕江县| 镶黄旗| 罗定市| 门源| 横峰县| 金昌市| 文昌市| 忻州市| 长沙市| 泊头市| 滕州市| 兴安县|