日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

springboot登錄認證JWT令牌

作者:西郵彭于晏 更新時間: 2024-01-28 編程語言

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

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新