赞
踩
当使用Java实现JWT令牌时,需要完成以下几个步骤:
- <!-- Maven -->
- <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>

- import io.jsonwebtoken.Claims;
- import io.jsonwebtoken.Jwts;
- import io.jsonwebtoken.SignatureAlgorithm;
-
- import java.util.Date;
-
- public class JwtUtil {
-
- private static final String SECRET_KEY = "your_secret_key";
- private static final long EXPIRATION_TIME = 86400000; // 24 hours
-
- public static String generateToken(String userId) {
- Date now = new Date();
- Date expiryDate = new Date(now.getTime() + EXPIRATION_TIME);
-
- return Jwts.builder()
- .setSubject(userId)
- .setIssuedAt(now)
- .setExpiration(expiryDate)
- .signWith(SignatureAlgorithm.HS512, SECRET_KEY)
- .compact();
- }
- }

- import io.jsonwebtoken.Claims;
- import io.jsonwebtoken.Jwts;
- import io.jsonwebtoken.SignatureAlgorithm;
-
- import java.util.Date;
-
- public class JwtUtil {
-
- // ...
-
- public static boolean validateToken(String token) {
- try {
- Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token);
- return true;
- } catch (Exception e) {
- return false;
- }
- }
- }

- import io.jsonwebtoken.Claims;
- import io.jsonwebtoken.Jwts;
- import io.jsonwebtoken.SignatureAlgorithm;
-
- import java.util.Date;
-
- public class JwtUtil {
-
- // ...
-
- public static String getUserIdFromToken(String token) {
- Claims claims = Jwts.parser()
- .setSigningKey(SECRET_KEY)
- .parseClaimsJws(token)
- .getBody();
-
- return claims.getSubject();
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。