📌  相关文章
📜  如何在节点 js 中设置 jwt 令牌的过期时间 - Javascript (1)

📅  最后修改于: 2023-12-03 15:09:03.753000             🧑  作者: Mango

如何在 Node.js 中设置 JWT 令牌的过期时间

介绍

在使用 JWT(JSON Web Token)作为身份验证和授权机制时,令牌的过期时间是一个非常重要的参数。设置合适的过期时间可以防止令牌长期有效,提高系统的安全性。

本文将介绍如何在 Node.js 中设置 JWT 令牌的过期时间。

步骤

以下是在 Node.js 中设置 JWT 令牌过期时间的步骤:

  1. 首先,安装 jsonwebtoken 包,该包是用于生成和校验 JWT 的 Node.js 包,可以通过以下命令来安装:
npm install jsonwebtoken
  1. 在生成 JWT 令牌时,使用 expiresIn 参数指定过期时间(以秒为单位),例如:
const jwt = require('jsonwebtoken');
const token = jwt.sign({ id: user.id }, process.env.JWT_SECRET, { expiresIn: 3600 });

上述代码中,使用 jwt.sign(payload, secretOrPrivateKey, [options, callback]) 方法生成 JWT 令牌,其中 payload 表示需要保存在 JWT 中的数据,secretOrPrivateKey 表示用于签名的密钥,options 是一个可选的对象,包含 expiresIn 参数,表示过期时间,单位为秒,例如上面的代码中过期时间为 1 小时。

  1. 在校验 JWT 令牌时,使用 jwt.verify(token, secretOrPublicKey, [options, callback]) 方法验证过期时间,例如:
const jwt = require('jsonwebtoken');
const decoded = jwt.verify(token, process.env.JWT_SECRET, { maxAge: '1h' });

上述代码中,使用 jwt.verify(token, secretOrPublicKey, [options, callback]) 方法验证 JWT 令牌,其中 token 是需要验证的令牌,secretOrPublicKey 是用于验证签名的密钥,options 是一个可选的对象,包含 maxAge 参数,表示最大过期时间,例如上面的代码中最大过期时间为 1 小时。

结论

本文介绍了如何在 Node.js 中设置 JWT 令牌的过期时间。通过正确地设置过期时间,可以提高系统的安全性,防止令牌长期有效,保护用户的隐私数据。