JWT令牌有效期多长时间
JSON Web令牌是一种高效、安全且广泛使用的在互联网上传输或交换数据的方法。通常,它用于应用程序的身份验证和授权。验证的工作流程是,在服务器端生成令牌并将其发送回客户端,用于进一步在服务器上进行请求。现在讨论的关键是这个jwt令牌会有效多久?这意味着多长时间后,服务器将不再考虑客户端发送的令牌。让我们首先了解如何创建JWT令牌。
使用 jsonwebtoken 库的 sign() 方法用于创建令牌,该方法接受参数对象,并返回生成的令牌。
语法:
参数:
- payload: 它是要在令牌中加密的信息
- secretKey: 它是用于标识令牌真实性的签名或称作代码。
- options: 在选项中,我们传递有关令牌的某些信息,这是我们提供令牌有效期限的地方。
返回类型: : 此方法将返回JWT令牌
示例: 创建一个有效期为10分钟的令牌。
步骤1: 创建一个Node项目
由于我们正在使用Node库,创建一个Node项目是必须的步骤,在终端中写入npm init。它会要求您提供关于项目的一些配置,非常容易提供。
步骤2: 安装“ jsonwebtoken ”包
在编写JWT代码之前,我们必须先安装这个包,
这将是我们在安装后的项目结构,其中node_modules包含模块,package.json存储项目的描述。此外,我们还创建了一个 app.js 文件来编写整个代码。
项目结构:
步骤3 :创建具有明确过期时间的 JWT 令牌。
有两种方法可以注册令牌的过期时间,下面都有说明。
- 创建一个过期时间表达式。
- 在方法的选项参数中提供 JWT 令牌的过期时间。
方法1: 存在一个键 exp ,我们可以在其中提供自纪元以来的秒数,并且令牌将在这些秒数内有效。
输出:
方法2: 在这种方法中, 我们可以在选项中传递时间给 expiresIn 这个键,它可以是有效期的秒数,或者是持续时间的字符串, ‘1h’ , ‘2h’ , ’10m’ ,等等。
输出:
步骤4:验证令牌的有效期
我们已经成功生成令牌,现在是时候验证代码是否按照预期工作了。
在10分钟之前:
输出1: 在生成令牌之前的10分钟,我们检查代码,如预期的那样,else代码块将起作用。
10分钟后:
输出2 :这里我们检查一次token是否过期。在这种情况下,将抛出 TokenExpirationError 。
结论: 在看到这两个输出以及创建令牌的方法后,我们可以分析令牌的持续时间是如何声明的以及它的有效期有多长。