当前位置: 首页 > 图灵资讯 > 技术篇> JWT java 设置过期时间

JWT java 设置过期时间

来源:图灵教育
时间:2023-12-17 12:01:00

实现 JWT Java 设置过期时间简介

我们经常需要在开发中使用它 JWT(Json Web Token)实现身份验证和授权功能。JWT 是开放标准(RFC 7519)定义了在不同系统之间传递信息的简单、自包含的方法。在使用 JWT 为了提高安全性,我们通常会设置一个过期时间进行身份验证。本文将介绍如何在这里 Java 中使用 JWT 设置过期时间。

实现步骤

下面是实现 JWT Java 设置过期时间的步骤可以用表格显示:

步骤操作导入相关依赖库2,创建一个 JWT 生成工具3设置 JWT 生成过期时间4 JWT5验证 JWT 的有效性

接下来,我们将详细介绍每个步骤需要做什么,以及需要使用的代码和代码注释。

导入相关依赖库

首先,我们需要引入相关的依赖库,以便在 Java 中使用 JWT。可使用以下内容 Maven 依赖:

<dependency>    <groupId>io.jsonwebtoken</groupId>    <artifactId>jjwt</artifactId>    <version>0.9.1</version></dependency>
创建一个 JWT 生成工具类

接下来,我们可以创建一个 JWT 用于生成和验证生成工具 JWT。您可以使用以下代码创建一个名称 JwtUtils 的类:

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 = "your-secret-key";    public static String generateToken(String subject, long expirationTimeMillis) {        Date now = new Date();        Date expirationDate = new Date(now.getTime() + expirationTimeMillis);        return Jwts.builder()                .setSubject(subject)                .setIssuedAt(now)                .setExpiration(expirationDate)                .signWith(SignatureAlgorithm.HS256, SECRET_KEY)                .compact();    }    public static boolean validateToken(String token) {        try {            Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token);            return true;        } catch (Exception e) {            return false;        }    }    public static Claims getClaimsFromToken(String token) {        return Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token).getBody();    }}

在上述代码中,我们使用它 jjwt 生成和验证图书馆 JWT。在 generateToken 我们设置了方法 JWT 的主题(subject)、签发时间(issuedAt)和过期时间(expiration),并使用 SECRET_KEY 对 JWT 进行签名。在 validateToken 我们已经验证了方法 JWT 的有效性。在 getClaimsFromToken 在方法中,我们得到它 JWT 中的信息。

设置 JWT 的过期时间

下一步,我们需要设置 JWT 过期时间。过期时间可以用以下代码设置:

long expirationTimeMillis = 3600000; // 设置过期时间为 1 小时

在这个例子中,我们将过期时间设置为 1 小时,即 3600000 毫秒。

生成 JWT

接下来,我们可以用它 JwtUtils.generateToken 方法生成 JWT。可以使用以下代码生成 JWT:

String token = JwtUtils.generateToken("user_id", expirationTimeMillis);

在这个例子中,我们将主题设置为 "user_id",并将过期时间设置为以前设定的过期时间。

验证 JWT 的有效性

最终,我们可以使用它 JwtUtils.validateToken 方法验证 JWT 有效性。可使用以下代码进行验证 JWT:

boolean isValid = JwtUtils.validateToken(token);

在这个例子中,我们验证了以前生成的 JWT 将结果存储在有效性中 isValid 变量中。

序列图

以下是使用序列图来表示上述步骤的过程:

sequenceDiagram    participant Developer as 开发者    participant Beginner as 刚入行的小白    Developer->>Beginner: 介绍实现 JWT Java 设置过期时间步骤    Developer->>Beginner: 导入相关依赖库    Developer->>Beginner: 创建一个 JWT 生成工具类    Developer->>Beginner: 设置 JWT 的过期时间    Developer->>Beginner: 生成