JJWT快速入门

本篇介绍使用 JJWT(Java JWT)库来生成 JWT Token,步骤如下:

  1. 添加依赖:
    在项目中添加 JJWT 依赖项。对于 Maven 项目,可以在 pom.xml 文件中添加以下依赖项:
  <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>
       <scope>runtime</scope>
   </dependency>
   <dependency>
       <groupId>io.jsonwebtoken</groupId>
       <artifactId>jjwt-jackson</artifactId>
       <version>0.11.2</version>
       <scope>runtime</scope>
   </dependency>
  1. 创建 JWT Token:
    下面是使用 JJWT 库创建 JWT Token 的示例代码:
	@Test
	public void genJwtToken() {
		Key key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
		String jwtToken = Jwts.builder().setSubject("JWT Demo") // 设置主题(Subject)
				.claim("userId", "oscar").claim("role", "admin").signWith(key) // 使用指定的算法和密钥签名
				.compact();
		System.out.println("jwtToken="+jwtToken);
	}

在上述示例中,设置了以下信息:

  • 主题(Subject)为 “JWT Demo”
  • 自定义声明(Claim)为 “userId” 和 “oscar”
    使用 signWith() 方法指定签名算法(这里使用 HS256)和密钥进行签名。最后使用 compact() 方法生成 JWT Token。
    产生的Token如下图所示:

在这里插入图片描述

  1. 调整 Token 有效期(可选):
    默认情况下,生成的 JWT Token 是不带过期时间的。如果需要设置 Token 的有效期,可以使用 setExpiration() 方法来指定有效期,示例如下:
	@Test
	public void tokenWithExpired() {
		Key key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
		Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000); // 设置过期时间为1小时后
		String jwtToken = Jwts.builder().setSubject("JWT Demo") // 设置主题(Subject)
				.setExpiration(expiration) //设置过期时间
				.claim("userId", "oscar").claim("role", "admin")
				.signWith(key) // 使用指定的算法和密钥签名
				.compact();
		System.out.println("jwtToken="+jwtToken);
	}

在上述示例中,使用 setExpiration() 方法设置了 Token 的过期时间为当前时间的 1 小时后。

在线完整演示代码



猜你喜欢

转载自blog.csdn.net/oscar999/article/details/132136839
今日推荐