jwt——生成token、解析token的简单工具类

  • Post category:other

以下是关于“JWT——生成Token、解析Token的简单工具类”的完整攻略,过程中包含两个示例。

背景

在Web开发中,JWT(JSON Web Token)是一种常用身份验证和授权机制。本攻略将介绍如何使用Java编写一个简单的JWT工具类,用于生成Token和解析Token。

基本原理

在Java中,我们可以使用第三方库jjwt来生成和解析JWT。具体步骤如下:

  1. 添加依赖。

我们需要在项目中添加jjwt的依赖。

<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.9.1</version>
</dependency>
  1. 编写工具类。

我们需要编写一个工具类,用于生成Token和解析Token。

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;

public class JwtUtils {

    private static final String SECRET_KEY = "my_secret_key";

    public static String generateToken(String subject, long ttlMillis) {
        long nowMillis = System.currentTimeMillis();
        Date now = new Date(nowMillis);

        return Jwts.builder()
                .setSubject(subject)
                .setIssuedAt(now)
                .setExpiration(new Date(nowMillis + ttlMillis))
                .signWith(SignatureAlgorithm.HS256, SECRET_KEY)
                .compact();
    }

    public static String parseToken(String token) {
        Claims claims = Jwts.parser()
                .setSigningKey(SECRET_KEY)
                .parseClaimsJws(token)
                .getBody();

        return claims.getSubject();
    }
}
  1. 使用工具类。

我们可以使用工具类来生成Token和解析Token。

// 生成Token
String token = JwtUtils.generateToken("user_id_123", 3600000);

// 解析Token
String userId = JwtUtils.parseToken(token);

以下是两个生成Token和解析Token的例:

示例1

假设我们需要生成一个Token,有效期为1小时,并将其解析出来。我们可以按照以下步骤进行:

  1. 生成Token。

我们需要调用generateToken()方法生成Token。

String token = JwtUtils.generateToken("user_id_123", 3600000);
  1. 解析Token。

我们需要调用parseToken()方法解析Token。

String userId = JwtUtils.parseToken(token);

示例2

假设我们需要生成一个Token,有效期为30分钟,并将其解析出来。可以按照以下步骤进行:

  1. 生成Token。

我们需要调用generateToken()方法生成Token。

String token = JwtUtils.generateToken("user_id_456", 1800000);
  1. 解析Token。

我们需要调用parseToken()方法解析Token。

String userId = JwtUtils.parseToken(token);

结论

在Java中,我们可以使用第三方库jjwt来生成和解析JWT。通过添加依赖、编写工具类和使用工具类,我们可以轻松地生成Token和解析Token。无论是在Web开发领域还是在科学研究中,JWT都是一种非常有用的身份验证和授权机制。