电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Spring Boot 整合 JWT的方法

瀏覽:95日期:2023-08-29 16:36:45

1、JWT 是什么?

JWT 是一個開放標準,它定義了一種用于簡潔,自包含的用于通信雙方之間以 JSON 對象的形式安全傳遞信息的方法。JWT 可以使用 HMAC 算法或者是 RSA 的公鑰密鑰對進行簽名。

簡單來說,就是通過一定規范來生成 token,然后可以通過解密算法逆向解密 token,這樣就可以獲取用戶信息。

優點:

1)生產的 token 可以包含基本信息,比如 id、用戶昵稱、頭像等信息,避免再次查庫

2)存儲在客戶端,不占用服務端的內存資源

缺點:

token 是經過 base64 編碼,所以可以解碼,因此 token 加密前的對象不應該包含敏感信息,如用戶權限,密碼等

2、JWT 格式組成:頭部、負載、簽名

header+payload+signature

頭部:主要是描述簽名算法

負載:主要描述是加密對象的信息,如用戶的id等,也可以加些規范里面的東西,如 iss 簽發者,exp 過期時間,sub 面向的用戶

簽名:主要是把前面兩部分進行加密,防止別人拿到 token 進行 base 解密后篡改 token

3、關于jwt客戶端存儲

可以存儲在 Cookie,localStorage 和 sessionStorage 里面

4、引入相關依賴并開發 JWT 工具類

1)引入依賴

<!-- JWT相關 --><dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.7.0</version></dependency>

2)開發生產 token 方法

3)開發檢驗 token 方法

package com.haitaiinc.clinicpathservice.utils;import com.haitaiinc.clinicpathservice.entity.UserInfo;import io.jsonwebtoken.Claims;import io.jsonwebtoken.Jwts;import io.jsonwebtoken.SignatureAlgorithm;import org.springframework.util.StringUtils;import java.util.Date;public class JwtUtils { public static final String SUBJECT = 'admin'; /** * 過期時間,毫秒,一周 */ public static final long EXPIRE = 1000 * 60 * 60 * 24 * 7; /** * 秘鑰 */ public static final String APPSECRET = 'haitaiinc'; /** * 生成jwt * * @param userInfo * @return */ public static String geneJsonWebToken(UserInfo userInfo) { if (userInfo == null || StringUtils.isEmpty(userInfo.getUserId()) || StringUtils.isEmpty(userInfo.getUserName())) { return null; } String token = Jwts.builder().setSubject(SUBJECT) .claim('id', userInfo.getUserId()) .claim('name', userInfo.getUserName()) .setIssuedAt(new Date()) .setExpiration(new Date(System.currentTimeMillis() + EXPIRE)) .signWith(SignatureAlgorithm.HS256, APPSECRET).compact(); return token; } /** * 校驗token * * @param token * @return */ public static Claims checkJWT(String token) { try { final Claims claims = Jwts.parser().setSigningKey(APPSECRET). parseClaimsJws(token).getBody(); return claims; } catch (Exception e) { } return null; }}

4)測試

package com.haitaiinc.clinicpathservice;import com.haitaiinc.clinicpathservice.entity.UserInfo;import com.haitaiinc.clinicpathservice.utils.JwtUtils;import io.jsonwebtoken.Claims;import org.junit.jupiter.api.Test;public class CommonTest { @Test public void testGeneJwt() { UserInfo user = new UserInfo(); user.setUserId('admin'); user.setUserName('管理員'); String token = JwtUtils.geneJsonWebToken(user); System.out.println(token); } @Test public void testCheck() { String token = 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlkIjoiYWRtaW4iLCJuYW1lIjoi566h55CG5ZGYIiwiaWF0IjoxNTc3NTU3MDU1LCJleHAiOjE1NzgxNjE4NTV9.VrrKtCTnxVN76JhpyIusCGq9Wj89wLor0OqIJ6s0zXo'; Claims claims = JwtUtils.checkJWT(token); if (claims != null) { String id = (String) claims.get('id'); String name = (String) claims.get('name'); System.out.println(id); System.out.println(name); } else { System.out.println('非法token'); } }}

以上就是Spring Boot 整合 JWT的方法的詳細內容,更多關于Spring Boot 整合 JWT的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
主站蜘蛛池模板: 辐射色度计-字符亮度测试-反射式膜厚仪-苏州瑞格谱光电科技有限公司 | 动力配电箱-不锈钢配电箱-高压开关柜-重庆宇轩机电设备有限公司 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 铁素体测量仪/检测仪/铁素体含量测试仪-苏州圣光仪器有限公司 | 油罐车_加油机_加油卷盘_加油机卷盘_罐车人孔盖_各类球阀_海底阀等车用配件厂家-湖北华特专用设备有限公司 | 不干胶标签,不干胶标签纸_厂家-山东同力胶粘制品 | 菲希尔FISCHER测厚仪-铁素体检测仪-上海吉馨实业发展有限公司 | 偏心半球阀-电动偏心半球阀-调流调压阀-旋球阀-上欧阀门有限公司 | 不锈钢水箱厂家,不锈钢保温水箱-山东桑特供水设备 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 心得体会网_心得体会格式范文模板 | 在线PH计-氧化锆分析仪-在线浊度仪-在线溶氧仪- 无锡朝达 | 超声波焊接机_超音波熔接机_超声波塑焊机十大品牌_塑料超声波焊接设备厂家 | 掺铥光纤放大器-C/L波段光纤放大器-小信号光纤放大器-合肥脉锐光电技术有限公司 | 杭州网络公司_百度SEO优化-外贸网络推广_抖音小程序开发-杭州乐软科技有限公司 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 大型工业风扇_工业大风扇_大吊扇_厂房车间降温-合昌大风扇 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 武汉宣传片制作-视频拍摄-企业宣传片公司-武汉红年影视 | TwistDx恒温扩增-RAA等温-Jackson抗体-默瑞(上海)生物科技有限公司 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | 合肥花魁情感婚姻咨询中心_挽回爱情_修复婚姻_恋爱指南 | 成都亚克力制品,PVC板,双色板雕刻加工,亚克力门牌,亚克力标牌,水晶字雕刻制作-零贰捌广告 | SMC-SMC电磁阀-日本SMC气缸-SMC气动元件展示网 | 航空铝型材,7系铝型材挤压,硬质阳*氧化-余润铝制品 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | HYDAC过滤器,HYDAC滤芯,现货ATOS油泵,ATOS比例阀-东莞市广联自动化科技有限公司 | 福州甲醛检测-福建室内空气检测_环境检测_水质检测-福建中凯检测技术有限公司 | 三防漆–水性三防漆–水性浸渍漆–贝塔三防漆厂家 | 快速门厂家-快速卷帘门-工业快速门-硬质快速门-西朗门业 | 石油/泥浆/不锈钢防腐/砂泵/抽砂泵/砂砾泵/吸砂泵/压滤机泵 - 专业石油环保专用泵厂家 | 工控机,嵌入式主板,工业主板,arm主板,图像采集卡,poe网卡,朗锐智科 | 精密模具加工制造 - 富东懿| 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | 玻璃钢格栅盖板|玻璃钢盖板|玻璃钢格栅板|树篦子-长沙川皖玻璃钢制品有限公司 | 微量水分测定仪_厂家_卡尔费休微量水分测定仪-淄博库仑 | 智能门锁电机_智能门锁离合器_智能门锁电机厂家-温州劲力智能科技有限公司 | 宿舍管理系统_智慧园区系统_房屋/房产管理系统_公寓管理系统 | 电加热导热油炉-空气加热器-导热油加热器-翅片电加热管-科安达机械 | 北京遮阳网-防尘盖土网-盖土草坪-迷彩网-防尘网生产厂家-京兴科技 | 一点车讯-汽车网站,每天一点最新车讯! |