日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jwt学习

發布時間:2024/4/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jwt学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是JWT?

jwt的全稱是JSON Web Token;JSON Web
Token是一個開源標準(rfc7519),是一個輕量,攜帶著用戶信息的json
Object對象,安全的進行服務器端與客戶端交互;這個對象可以校驗、信任,因為它由數字組成;
輕量:因為輕量,所以可以更好地放在httpheader里面,在服務器與客戶端之間快速交互
攜帶用戶信息:將用戶的重要信息:userId,userName等放在jwt當中,不用再次從數據庫當中獲取

什么時候使用?

  • 需要認證:用戶根據username、password登錄后,使用jwt返回一個token給客戶端,客戶端在請求的時候將token放在http
    header當中給服務器端,服務器端校驗token的合法性,然后處理請求的response

  • 用戶信息被改變:

  • jwt的結構

    基本結構

    由header、payload、sinature三部分組成,最終以xxx.yyy.zzz的形式拼接

    header由兩部分組成:

    • type of token : JWT
    • 加密算法: HMAC/SHA256/RSA

    payload

    payload里面存放著用戶的信息,可以使用claims進行復合拼裝,claims由已定義、public、private三部分組成

    • resolved(已定義):iss/exp/sub/aud
    • public:url信息
    • private:用戶信息

    payload當中的數據都可以由用戶自行設置

    sinature

    簽名,根據header、payload和一個用戶設置的密碼(secret),生成一個簽名,最后將header,payload,sinature拼接成xxx.yyy.zzz形式

    怎么使用(java)

    pom.xml里面引入jwt

    <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.7.0</version> </dependency> public static void main(String[] args) {String secret = "password";String userId = "zhangsan";String userName = "張三";// 輸出的jwt:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ6aGFuZ3NhbiIsInVzZXJOYW1lIjoi5byg5LiJIn0.024kCUw4nodiXEdeOWtjWFn8u2eoh-DdfmLiXYgZs9gString jwt = Jwts.builder().setSubject(userId).signWith(SignatureAlgorithm.HS256, secret).claim("userName", userName).compact();System.out.println(jwt);// 客戶端將Jwt傳遞給服務器,服務器根據secret進行解密,可以對jwt進行校驗,取數據Jws<Claims> claims = Jwts.parser().setSigningKey(secret).parseClaimsJws(jwt);//header={alg=HS256},body={sub=zhangsan, userName=張三},signature=024kCUw4nodiXEdeOWtjWFn8u2eoh-DdfmLiXYgZs9gSystem.out.println(claims);}

    由上面可以看出claims里面存放的數據由header、body、signature三部分組成

    轉載于:https://www.cnblogs.com/penggy/p/6710017.html

    總結

    以上是生活随笔為你收集整理的jwt学习的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。