SpringBoot2-Jwt

本文介绍了如何使用jose4j库在Java中创建和验证JSONWebTokens(JWT),包括创建JWT工具类、设置Token参数、以及在登录和拦截器中应用JWT验证的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.官网

jwt.io/libraries

2.选jose4j

    pom

<dependency>
   <groupId>org.bitbucket.b_c</groupId>
   <artifactId>jose4j</artifactId>
   <version>0.9.4</version>
</dependency>

3.创建jwt工具

public class JwtUtil {

    private static  String secret = "e0e775bfcad04ecc94807b028dfca4d5";// "12345678123456781234567812345678"; // 注意密钥长短(最少32个字符)
    private static String Issuer = "QiXiao";
    private static String Audience = "WangPeng";

    public static String CreateToken(UserEntity user)  {

        try {
            JsonWebSignature jws = new JsonWebSignature();

            //Claim
            JwtClaims claims = new JwtClaims();
            claims.setIssuer(Issuer);  // who creates the token and signs it
            claims.setAudience(Audience); // to whom the token is intended to be sent
            claims.setExpirationTimeMinutesInTheFuture(10); // 过期时间
            claims.setGeneratedJwtId();                     // 为 JWT 设置一个自动生成的唯一 ID
            claims.setIssuedAtToNow();                      // 设置 Token 发布/创建 时间为当前时间
            claims.setNotBeforeMinutesInThePast(2);         // 设置生效时间为 2 分钟前
            claims.setSubject("Bearer"); // the subject/principal is whom the token is about
            claims.setClaim("UserSN", user.getSN());
            claims.setClaim("email","wang_peng_yl@126.com"); // additional claims/attributes about the subject can be added

            jws.setPayload(claims.toJson());

            //Header
            jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256);
            jws.setHeader("typ", "JWT");

            //签名
            Key hmacKey = CreateKey();
            jws.setKey(hmacKey);
            jws.setDoKeyValidation(false);

            String jwt = jws.getCompactSerialization();
            System.out.println(jwt);
            return jwt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wang_peng

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

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

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

打赏作者

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

抵扣说明:

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

余额充值