📅  最后修改于: 2023-12-03 15:32:25.036000             🧑  作者: Mango
JSON Web Token (JWT) 是一个开放标准 (RFC 7519),用于在不同应用程序之间安全地传输信息。JWT 通常用于身份验证和授权。
在本教程中,我们将使用 jsonwebtoken
npm 模块在 Node.js 中创建和验证 JWT。我们还将学习如何全局安装 npm 模块。
在进行任何操作之前,我们需要先安装 jsonwebtoken
模块。我们可以使用以下命令在全局范围内安装 npm 模块:
npm install -g jsonwebtoken
使用 -g
标志可以将模块安装到全局范围内。这意味着您可以在任何位置使用 jsonwebtoken
命令行。
接下来,我们将使用 jsonwebtoken
模块创建 JWT。JWT 由 3 部分组成:头部、载荷和签名。
以下是创建 JWT 的代码片段:
const jwt = require('jsonwebtoken');
const payload = {
user_id: 1234,
name: "John Doe",
email: "johndoe@example.com"
};
const secret = "your_jwt_secret";
const token = jwt.sign(payload, secret, { expiresIn: 3600 });
console.log(token);
在上面的代码中,我们定义了一个包含用户数据的负载 (payload)。我们还指定了一个秘密 (secret),在验证 JWT 时需要使用。我们使用 jwt.sign()
方法创建 JWT。第一个参数是负载,第二个参数是秘密,第三个参数是选项。在本例中,我们设置了 expiresIn
选项为 3600 秒 (1 小时)。
现在我们可以使用 jsonwebtoken
模块验证 JWT。以下是验证 JWT 的代码片段:
const jwt = require('jsonwebtoken');
const secret = "your_jwt_secret";
const token = "your_jwt_token";
jwt.verify(token, secret, (err, decoded) => {
if (err) {
console.error(err);
} else {
console.log(decoded);
}
});
在上面的代码中,我们使用 jwt.verify()
方法验证 JWT。第一个参数是要验证的 JWT,第二个参数是秘密,第三个参数是回调函数。在回调函数中,我们检查是否有任何错误。如果没有错误,则解码的 JWT 数据将作为回调函数的第二个参数传递。
在本教程中,我们学习了如何使用 jsonwebtoken
npm 模块在 Node.js 中创建和验证 JSON Web Token (JWT)。我们还学习了如何全局安装 npm 模块。务必注意,要保护您的 JWT,永远不要将包含秘密的 token 提交到 git 存储库或其他不安全的地方。