当前位置:   article > 正文

02-JWT令牌实现_jwt实现令牌

jwt实现令牌

当使用Java实现JWT令牌时,需要完成以下几个步骤:

1.导入依赖:在项目的构建文件(如Maven的pom.xml或Gradle的build.gradle)中添加jjwt库的依赖:

  1. <!-- Maven -->
  2. <dependency>
  3. <groupId>io.jsonwebtoken</groupId>
  4. <artifactId>jjwt-api</artifactId>
  5. <version>0.11.2</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>io.jsonwebtoken</groupId>
  9. <artifactId>jjwt-impl</artifactId>
  10. <version>0.11.2</version>
  11. <scope>runtime</scope>
  12. </dependency>
  13. <dependency>
  14. <groupId>io.jsonwebtoken</groupId>
  15. <artifactId>jjwt-jackson</artifactId>
  16. <version>0.11.2</version>
  17. <scope>runtime</scope>
  18. </dependency>

2.生成JWT令牌:在JwtUtil类中,创建一个generateToken方法来生成JWT令牌。在此方法中,你需要指定主题(即用户标识)、发布时间、过期时间和签名算法。以下是一个示例代码: 

  1. import io.jsonwebtoken.Claims;
  2. import io.jsonwebtoken.Jwts;
  3. import io.jsonwebtoken.SignatureAlgorithm;
  4. import java.util.Date;
  5. public class JwtUtil {
  6. private static final String SECRET_KEY = "your_secret_key";
  7. private static final long EXPIRATION_TIME = 86400000; // 24 hours
  8. public static String generateToken(String userId) {
  9. Date now = new Date();
  10. Date expiryDate = new Date(now.getTime() + EXPIRATION_TIME);
  11. return Jwts.builder()
  12. .setSubject(userId)
  13. .setIssuedAt(now)
  14. .setExpiration(expiryDate)
  15. .signWith(SignatureAlgorithm.HS512, SECRET_KEY)
  16. .compact();
  17. }
  18. }

3.验证JWT令牌:在JwtUtil类中,创建一个validateToken方法来验证JWT令牌的有效性。以下是一个示例代码: 

  1. import io.jsonwebtoken.Claims;
  2. import io.jsonwebtoken.Jwts;
  3. import io.jsonwebtoken.SignatureAlgorithm;
  4. import java.util.Date;
  5. public class JwtUtil {
  6. // ...
  7. public static boolean validateToken(String token) {
  8. try {
  9. Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token);
  10. return true;
  11. } catch (Exception e) {
  12. return false;
  13. }
  14. }
  15. }

4.从JWT令牌中获取用户标识:在JwtUtil类中,创建一个getUserIdFromToken方法,用于从JWT令牌中提取用户标识。以下是一个示例代码:

  1. import io.jsonwebtoken.Claims;
  2. import io.jsonwebtoken.Jwts;
  3. import io.jsonwebtoken.SignatureAlgorithm;
  4. import java.util.Date;
  5. public class JwtUtil {
  6. // ...
  7. public static String getUserIdFromToken(String token) {
  8. Claims claims = Jwts.parser()
  9. .setSigningKey(SECRET_KEY)
  10. .parseClaimsJws(token)
  11. .getBody();
  12. return claims.getSubject();
  13. }
  14. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/544458
推荐阅读
相关标签
  

闽ICP备14008679号