4
2
0
2

JWT使用

JWT使用

1、导入maven依赖

<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.9.1</version>
</dependency>

2、测试代码

package com.codertl.jwt;


import io.jsonwebtoken.*;
import org.junit.jupiter.api.Test;

import java.util.Date;
import java.util.UUID;

/**
 * @Description
 * @Author Admin
 * @Date 2021/11/8
 */
public class test {
    // 定义有效期 一天
    private long time = 1000 * 60 * 60 * 24;

    // 签名信息
    private String signature = "admin";

    @Test
    public void jwt() {
        // 创建 jwt 对象
        JwtBuilder jwtBuilder = Jwts.builder();
        String jwtToken = jwtBuilder
                // header 头部
                .setHeaderParam("type", "JWT")
                .setHeaderParam("alg", "HS256")
                // payload 载体
                .claim("username", "codertl")
                .claim("role", "admin")
                // 主题
                .setSubject("admin-test")
                // 有效时间 一天
                .setExpiration(new Date(System.currentTimeMillis()+ time))
                .setId(UUID.randomUUID().toString())
                // 签名 signature
                .signWith(SignatureAlgorithm.HS256, signature)
                .compact();

        System.out.println(jwtToken);
    }

    @Test
    public void parse() {
        String token = "上边生成的 token";
        JwtParser jwtParser = Jwts.parser();
        Jws<Claims> claimsJws = jwtParser.setSigningKey(signature).parseClaimsJws(token);
        Claims claims = claimsJws.getBody();
        System.out.println("用户名:" + claims.get("username"));
        System.out.println("角色:" + claims.get("role"));
        System.out.println("Id:" + claims.getId());
        System.out.println("签名" + claims.getSubject());
        System.out.println("有效期" + claims.getExpiration());
    }
}

posted @   CoderTL  阅读(92)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示