java中生成和验证jwt
2023-02-18 16:27:58 时间
在这篇文章中主要记录一下在Java中如何使用 java 代码生成jwt token,主要是使用jjwt来生成和验证jwt,关于什么是JWT,以及JWT可以干什么不做详解。
jwt的格式: base64(header).base64(payload).加密算法(base64(header)+“.”+base64(payload),"私钥")
在Java中使用JWT
一、引入jjwt的jar包
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.0</version>
</dependency>
二、生成JWT token
// 私钥
private static final String SECRET_KEY = "this is a secret key";
public static void main(String[] args) {
// 生成token
String jwtToken = Jwts.builder()
// 头部
.setHeaderParam("typ", "JWT")
// jwt 标注中的申明
.setIssuedAt(new Date()) // 签发时间
.setExpiration(new Date(new Date().getTime() + 10000L))// 过期时间
.setSubject("19930311")// jwt面向的客户
.setIssuer("huan")// jwt的签发者
// 公共申明和私有申明
.claim("user_id", "admin")
.claim("phone", "18251421000")
.claim("age", 25)
.claim("sex", "男")
// 签证
.signWith(SignatureAlgorithm.HS256, SECRET_KEY.getBytes())
.compact();
System.out.println("生成的 jwt token 如下:" + jwtToken);
}
三、验证jwt token
// 验证jwt
Jws<Claims> claimsJws = Jwts.parser()
// 验证签发者字段iss 必须是 huan
.require("iss", "huan")
// 设置私钥
.setSigningKey(SECRET_KEY.getBytes())
// 解析jwt字符串
.parseClaimsJws(jwtToken);
// 获取头部信息
JwsHeader header = claimsJws.getHeader();
// 获取载荷信息
Claims payload = claimsJws.getBody();
System.out.println("解析过来的jwt的header如下:" + header.toString());
System.out.println("解析过来的jwt的payload如下:" + payload.toString());
上面jwtToken的值为第二步生成的jwt token的值
注:1、.require("iss","haun") 表示jwt中的iss字段的值必须是huan
2、验证jwt的秘钥和生成jwt的秘钥必须是同一个。
四、结果
相关文章
- 四象限分析的 DAX 实现及高阶思维模式
- 豆豆漫画技术——字典树
- Nature子刊:生命的最初几个小时内可快速学习音位辨别—基于fNIRS研究
- 在Ubuntu子系统中安装GNU Radio使用USRP
- Improved GaAs HBT Device Linearity with Flattened Ft Curve
- 让数据分析效率再提升 50%,帆软 FineBI V6.0 发布前剧透
- Simulation of SAW & BAW Resonators for RF Filters
- 颅内EEG记录揭示人类DMN网络的电生理基础
- 什么是降低能力 (RedCap) NR,它将实现什么目标?
- 《三体》世界在射频前端产业的投影:技术大爆炸之后是一地鸡毛,还是光速飞船?(待续)
- 《三体》在射频前端产业的投影:2022年的关键字——“脱水”
- 虹科分享 | 硬件加密U盘 | 管理密码安全的四大工具
- 不理解双极性晶体管(BJT),怎么做手机射频PA?
- 生存VS算力
- allure测试报告的友好展示方式
- 测试开发学习路线,学完去大厂
- 非对称密钥沉思系列(3):公钥、签名与证书
- 拥有云服务器后, 我是这样做的
- 腾讯会议REST API X-TC-Registered参数策略更新通知
- “知行合一”,我终于悟了