📅  最后修改于: 2023-12-03 15:28:11.754000             🧑  作者: Mango
JSON Web Tokens (JWT),是一种安全的身份验证机制,可以在身份验证请求和响应之间传递认证与授权信息。JWT 成功地在多个场景中应用,比如单点登录、OAuth 授权等。在本文中,我们将关注如何在你的应用程序中调用 JWT。
首先,你需要安装 JWT 包。在终端(Terminal)中输入以下命令:
npm install jsonwebtoken
然后,在应用程序代码文件中,导入以下代码:
const jwt = require('jsonwebtoken');
要创建 JWT,你需要使用 sign
函数。该函数接受三个参数:payload,密钥(secret)和选项(options)。payload
是一个 JSON 对象,包含你想存储在 JWT 中的数据。密钥
用于签署 JWT,并确保数据安全。选项
是一个可选的对象,可用于设置不同的参数,例如 JWT 的有效期。
以下是创建 JWT 的示例代码:
const payload = {
username: 'John Doe',
email: 'johndoe@example.com'
};
const secret = 'MySecret';
const options = {
expiresIn: '1h'
};
const token = jwt.sign(payload, secret, options);
在此示例中,我们创建了一个名为 payload
的 JSON 对象,其中包含用户名和电子邮件地址。MySecret
是我们所使用的密钥。我们还设置 JWT 的有效期为 1 小时。
要验证 JWT,你需要使用 verify
函数。该函数接受两个参数:JWT 和密钥(secret)。
以下是验证 JWT 的示例代码:
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IkpvaG4gRG9lIiwiZW1haWwiOiJqb2huZG9lQGV4YW1wbGUuY29tIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE1MTYyNDI2MjJ9.fqAJm_BbEEojda2zsI5LTVdAfnRnqlZdc1cIBPTv_hA';
const secret = 'MySecret';
try {
const decoded = jwt.verify(token, secret);
console.log(decoded);
} catch (e) {
console.error(e);
}
在此示例中,我们传递了一个 JWT 和我们使用的密钥。如果此 JWT 合法,它将被解码并打印到控制台上。如果 JWT 不是有效的,将抛出一个错误。
JSON Web Tokens(JWT)是一种安全的身份验证机制,可用于传递认证和授权信息。我们已经了解了如何调用 JWT,包括创建和验证 JWT。现在,你可以在你的应用程序中实现 JWT 的安全身份验证机制了。
参考资料: