網站首頁 編程語言 正文
1.方法:
在判斷該人員訪問的路徑是否合法,是否存在未登錄就訪問其他路徑,這時候我們就需要,進行登錄認證。其中有兩種方法,一種是加上過濾器,一種是進行JWT令牌。
(1)JWT令牌
令牌就是一段字符串,其要求承載業務數據減少后續請求查詢數據庫的次數和方篡改,保證信息的合法性和有效性。
JWT(JSON WEB TOKEN)
簡介:
定義了一種簡潔的、包含的格式,用于通信雙方一json數據格式安全的傳輸信息。
組成:
第一部分:Header,記錄令牌類型、簽名算法
第二部分:Payload(有效載荷),攜帶一些自定義信息、默認信息等
第三部分:Signature(簽名),防止Token被篡改、確保安全性。將header、payload,并加入指定密鑰,通過指定簽名算法計算而來
例如:
生成:
public void testGen() {
Map<String, Object> claims = new HashMap<>();
claims.put("id", 1);
claims.put("username", "張三");
//生成jwt的代碼
String token = JWT.create()
.withClaim("user", claims)//添加載荷
.withExpiresAt(new Date(System.currentTimeMillis() + 1000))//添加過期時間
.sign(Algorithm.HMAC256("itheima"));//指定算法,配置秘鑰
System.out.println(token);
}
驗證
//@Test
public void testParse() {
//定義字符串,模擬用戶傳遞過來的token
String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoxLCJ1c2VybmFtZSI6IuW8oOS4iSJ9LCJleHAiOjE2OTQzMjUzMzB9.dFmeOG04w6EfnCue4CFS-x-XMRv145EfsY8wnchbxL4";
JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256("itheima")).build();
DecodedJWT decodedJWT = jwtVerifier.verify(token);//驗證token,生成一個解析后的JWT對象
Map<String, Claim> claims = decodedJWT.getClaims();
System.out.println(claims.get("user"));
//如果篡改了頭部和載荷部分的數據,那么驗證失敗
//如果秘鑰改了,驗證失敗
//token過期
}
原文鏈接:https://blog.csdn.net/weixin_52326703/article/details/135841498
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-10-11 Windows下vs中對DLL、exe文件添加屬性信息
- 2022-05-11 linq中的連接操作符_實用技巧
- 2022-04-11 github上傳代碼error: src refspec master does not match
- 2023-04-07 React替換傳統拷貝方法的Immutable使用_React
- 2023-01-30 python中用shutil.move移動文件或目錄的方法實例_python
- 2022-07-31 C++?容器?Vector?的使用方法_C 語言
- 2022-06-13 Docker四種網絡模式演示及連通性測試_docker
- 2022-06-15 golang?Gin上傳文件返回前端及中間件實現示例_Golang
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支