0
点赞
收藏
分享

微信扫一扫

jjwt的使用

林肯公园_97cc 02-24 09:00 阅读 20

Java JWT(jjwt)是一个用于创建和验证JSON Web Tokens (JWT)的Java库。JWT是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息作为JSON对象。这些信息可以被验证和信任,因为它是数字签名的。JWT可以使用HMAC算法或者RSA、ECDSA的公钥/私钥对进行签名。

jjwt的基本使用

引入jjwt依赖。

<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt-api</artifactId>
    <version>0.11.2</version>
</dependency>
<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt-impl</artifactId>
    <version>0.11.2</version>
</dependency>
<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt-jackson</artifactId> <!-- or jjwt-gson if Gson is preferred -->
    <version>0.11.2</version>
</dependency>

创建JWT

使用jjwt创建一个JWT:

import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;

public class JwtCreator {
    private static final String SECRET = "yourSecretKey";

    public static String createJwt(String subject) {
        String jwtToken = Jwts.builder()
                .setSubject(subject)
                .setIssuedAt(new Date())
                .setExpiration(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 10)) // 10 hours
                .signWith(SignatureAlgorithm.HS256, SECRET.getBytes())
                .compact();
        return jwtToken;
    }
}

验证和解析JWT

验证JWT的有效性并从中提取信息:

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.security.Keys;

import javax.crypto.SecretKey;
import java.util.Date;

public class JwtValidator {
    private static final SecretKey SECRET_KEY = Keys.hmacShaKeyFor("yourSecretKey".getBytes());

    public static Claims validateAndParseJwt(String token) {
        Claims claims = Jwts.parserBuilder()
                .setSigningKey(SECRET_KEY)
                .build()
                .parseClaimsJws(token)
                .getBody();
        return claims;
    }
}


举报

相关推荐

0 条评论