📜  如何使用 npm 在节点 js 中使用 jwt jsonwebtoken 包 - Javascript (1)

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

如何使用 npm 在 Node.js 中使用 jwt 库

JSON Web Token (JWT) 是一种用于安全传输信息的开放标准。在 Node.js 中,我们可以使用一个叫做 jsonwebtoken 的 npm 包来方便地生成、验证和解析 JWT。

本文将介绍如何在 Node.js 中使用 jsonwebtoken 包。

安装

首先,我们需要安装 jsonwebtoken 包。在命令行中执行以下命令:

npm install jsonwebtoken --save

以上命令会将 jsonwebtoken 包安装到您的项目中并将其添加到 package.json 文件中。

生成 Token

要生成一个 JWT,我们需要使用 jsonwebtoken 包中的 sign 方法。以下是一个使用 HMAC SHA256 签名算法生成 JWT 的示例代码:

const jwt = require('jsonwebtoken');

const secretKey = 'my_secret_key';
const payload = { userId: 1 };

const token = jwt.sign(payload, secretKey, { expiresIn: '1h' });

console.log(token);

在上述代码中,我们首先引入了 jsonwebtoken 模块。然后,我们指定要使用的密钥和有效负载对象。最后,我们使用 sign 方法生成 JWT,并将其打印到控制台中。

验证 Token

要验证一个 JWT,我们需要使用 jsonwebtoken 包中的 verify 方法。以下是一个验证 JWT 并在验证通过时返回有效负载对象的示例代码:

const jwt = require('jsonwebtoken');

const secretKey = 'my_secret_key';

const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjF9.3_3PIk0twzcTLP23jKdU6W8U0MCyUo9DQsFonj6W1Tk';

jwt.verify(token, secretKey, (err, payload) => {
  if (err) {
    console.error('Token is invalid!');
  } else {
    console.log(payload);
  }
});

在上述代码中,我们首先引入了 jsonwebtoken 模块,然后指定要验证的 JWT 和密钥。我们使用 verify 方法验证 JWT,如果令牌有效,则将令牌的有效负载对象打印到控制台中。如果令牌无效,则打印错误消息。

解析 Token

要解析 JWT,我们需要使用 jsonwebtoken 包中的 decode 方法。以下是一个解析 JWT 并返回有效负载对象的示例代码:

const jwt = require('jsonwebtoken');

const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjF9.3_3PIk0twzcTLP23jKdU6W8U0MCyUo9DQsFonj6W1Tk';

const payload = jwt.decode(token);

console.log(payload);

在上述代码中,我们首先引入了 jsonwebtoken 模块,并指定要解析的 JWT。我们使用 decode 方法解析 JWT,并将其有效负载对象打印到控制台中。

结论

在本文中,我们介绍了如何在 Node.js 中使用 jsonwebtoken 包生成、验证和解析 JWT。我们希望这些示例代码能帮助您更好地了解如何使用 jsonwebtoken 包。如果您有任何问题或建议,请随时告诉我们!