Inicio rápido con JJWT

Este artículo presenta el uso de la biblioteca JJWT (Java JWT) para generar el token JWT. Los pasos son los siguientes:

  1. Agregar dependencias:
    agregue dependencias JJWT al proyecto. Para proyectos Maven, se pueden agregar las siguientes dependencias al archivo 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. Crear token JWT:
    el siguiente es un código de muestra para crear un token JWT usando la biblioteca JJWT:
	@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);
	}

En el ejemplo anterior, se establece la siguiente información:

  • El asunto (Asunto) es "JWT Demo"
  • El reclamo personalizado (Claim)
    utiliza signWith()el método para especificar el algoritmo de firma (aquí se usa HS256) y la clave para "userId" y "oscar". Finalmente, utilice compact()el método para generar un token JWT.
    El Token generado se muestra en la siguiente figura:

inserte la descripción de la imagen aquí

  1. Ajustar el período de validez del token (opcional):
    de forma predeterminada, el token JWT generado no tiene tiempo de vencimiento. Si necesita establecer el período de validez del Token, puede utilizar setExpiration()el método para especificar el período de validez. El ejemplo es el siguiente:
	@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);
	}

En el ejemplo anterior, utilice setExpiration()el método para establecer el tiempo de vencimiento del Token en 1 hora después de la hora actual.

Complete el código de demostración en línea



Supongo que te gusta

Origin blog.csdn.net/oscar999/article/details/132136839
Recomendado
Clasificación