當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JWT/JJWT JSON WEB TOKEN介绍和使用
生活随笔
收集整理的這篇文章主要介紹了
JWT/JJWT JSON WEB TOKEN介绍和使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JSON web Token,簡稱JWT,本質是一個token,是一種緊湊的URL安全方法(注意是方法,博主剛開始接觸一直以為是一種像shiro一樣的),用于在網絡通信的雙方之間傳遞。一般放在HTTP的headers 參數里面的authorization里面(這個是可以自己定義放在哪里的,畢竟只是一種驗證用戶的方式),值的前面加Bearer關鍵字和空格。除此之外,也可以在url和request body中傳遞。?
JWT包含三個部分,分別是頭部、載荷與簽名。其中頭部包含的是加密的一些信息,簽名是根據前面兩部分生成的。最主要的就是咱們存放信息的載荷部分了。?
具體介紹可以參考:http://blog.leapoahead.com/2015/09/06/understanding-jwt/?
這里就不再贅述,這篇文章主要說jjwt的使用,也就是java版本的jwt包的使用?
maven:?
當然,項目中沒有maven的同學也可以去maven倉庫里下載jjwt的jar包引入項目
- 1
- 2
- 3
- 4
- 5
快速開始:?
構造jwt串
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
大概會是這樣:
eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJKb2UifQ.yiV1GWDrQyCeoOswYTf_xvlgsnaVVYJM0mU6rkmRBf2T1MBl3Xh2kZii0Q9BdX5-G0j25Qv2WF4lA6jPl5GKuA- 1
解析jwt串:
Jwts.parser().setSigningKey(key).parseClaimsJws(compactJws).getBody().getSubject(); // 獲取jwt串里的subject參數,獲取body以后可以獲取到你存入的信息- 1
其中parseClaimsJws驗證jwt字符串失敗可能會拋出異常,這時咱們應該捕獲這個異常:
try {Jws<Claims> parseClaimsJws = Jwts.parser().setSigningKey(key).parseClaimsJws(compactJws);//compactJws為jwt字符串Claims body = parseClaimsJws.getBody();//得到body后我們可以從body中獲取我們需要的信息//比如 獲取主題,當然,這是我們在生成jwt字符串的時候就已經存進來的String subject = body.getSubject();//OK, we can trust this JWT} catch (SignatureException | MalformedJwtException e) {// TODO: handle exception// don't trust the JWT!// jwt 解析錯誤} catch (ExpiredJwtException e) {// TODO: handle exception// jwt 已經過期,在設置jwt的時候如果設置了過期時間,這里會自動判斷jwt是否已經過期,如果過期則會拋出這個異常,我們可以抓住這個異常并作相關處理。}- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
ok,如果還有不明白的地方可以參考jjwt在github上的readme:https://github.com/jwtk/jjwt
總結
以上是生活随笔為你收集整理的JWT/JJWT JSON WEB TOKEN介绍和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这题不错
- 下一篇: Linux下安装配置Nexus