📜  json web token npm global - Javascript (1)

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

使用 JSON Web Token (JWT) 在 Node.js 中进行身份验证

简介

JSON Web Token (JWT) 是一个开放标准 (RFC 7519),用于在不同应用程序之间安全地传输信息。JWT 通常用于身份验证和授权。

在本教程中,我们将使用 jsonwebtoken npm 模块在 Node.js 中创建和验证 JWT。我们还将学习如何全局安装 npm 模块。

步骤 1 - 全局安装 npm 模块

在进行任何操作之前,我们需要先安装 jsonwebtoken 模块。我们可以使用以下命令在全局范围内安装 npm 模块:

npm install -g jsonwebtoken

使用 -g 标志可以将模块安装到全局范围内。这意味着您可以在任何位置使用 jsonwebtoken 命令行。

步骤 2 - 创建 JWT

接下来,我们将使用 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 小时)。

步骤 3 - 验证 JWT

现在我们可以使用 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 存储库或其他不安全的地方。