【SpringBoot】【JWT】0.12.6版本(2025最新)的JWT令牌生成和校验

在0.9.x版本下的许多方法都被弃用:
在这里插入图片描述

查看废弃的方法的源码,可以找到最新的使用方法,生成令牌的方式并不唯一:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

最新的JWT令牌生成和校验:

依赖:

<dependency>
	<groupId>io.jsonwebtoken</groupId>
	<artifactId>jjwt-api</artifactId>
	<version>0.12.6</version>
</dependency>
<dependency>
	<groupId>io.jsonwebtoken</groupId>
	<artifactId>jjwt-impl</artifactId>
	<version>0.12.6</version>
	<scope>runtime</scope>
</dependency>
<dependency>
	<groupId>io.jsonwebtoken</groupId>
	<artifactId>jjwt-gson</artifactId>
	<version>0.12.6</version>
</dependency>

JWT令牌生成:

	/**
     * 过期时间,7天
     */
    private static final long EXPIRE = 60000 * 60 * 24 * 7;
    /**
     * 加密密钥
     */
    private static final String SECRET = "net.example.SSMdemo";
    /**
     * 使用HS256算法生成密钥
     */
    private static final SecretKey KEY = Jwts.SIG.HS256.key().random(new SecureRandom(SECRET.getBytes())).build();
    /**
     * 主题
     */
    private static final String SUBJECT = "SSMdemo";

	/**
     * 根据用户信息生成令牌
     * @param user
     * @return
     */
    public static String geneJsonWebToken(User user){
        Map<String,Object> claims = new HashMap<>();
        claims.put("name",user.getName());
        claims.put("phone",user.getPhone());
        String token = Jwts.builder().claims()
                .add(claims)  // 添加内容
                .subject(SUBJECT)   // 声明主题
                .issuedAt(new Date())   // 创建JWT时的时间戳
                .expiration(new Date(System.currentTimeMillis() + EXPIRE))  // 设置过期时间
                .and()  // 返回JwtBuilder配置
                .signWith(KEY)  // 签名
                .compact(); // 紧凑
        return token;
    }

校验JWT令牌:

public static Claims checkJWT(String token){
        try {
            final Claims claims = Jwts.parser()
                    .verifyWith(KEY)    // 验证所有遇到的JWS签名
                    .build()
                    .parse(token).accept(Jws.CLAIMS)   // 解析jws
                    .getPayload();  // JWT有效载荷
            return claims;
        }catch (Exception e){
            return null;
        }
}

https://jwt.io/直接校验jwt令牌:在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆浆两块钱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值