📅  最后修改于: 2023-12-03 14:50:14.122000             🧑  作者: Mango
JWT(JSON Web Token)是一种用于安全地传输信息的开放标准。它是基于 JSON 格式的令牌,可以用于认证和授权。
在本教程中,我们将学习如何创建 JWT 令牌。
以下是使用 Node.js 创建 JWT 令牌的代码:
const jwt = require('jsonwebtoken');
const secret = 'mysecretkey';
const payload = {
username: 'john.doe',
role: 'admin'
};
const options = {
expiresIn: '1h'
};
const token = jwt.sign(payload, secret, options);
console.log(token);
上面的代码使用 jsonwebtoken
模块创建 JWT 令牌。我们提供了一个称为 payload
的对象,它包含要传输的信息。我们还提供了一个 secret
,它用于对令牌进行签名以确保其真实性。最后,我们提供了一个可选的 options
对象,它包含选项,如有效期等。
通过调用 jwt.sign
函数,在 payload
和 secret
的帮助下,我们获得了 JWT 令牌。您可以将此令牌发送到客户端,客户端可以将其包含在每个请求中,以便进行身份验证。
以下是使用 Node.js 验证 JWT 令牌的代码:
const jwt = require('jsonwebtoken');
const secret = 'mysecretkey';
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImpvaG4uZG9lIiwicm9sZSI6ImFkbWluIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE1MTYyNDA2MjJ9.7U6fCwwMVQQebrkRRjKdcteiGKV6X9MnUfQKkE85wtU';
jwt.verify(token, secret, (err, decoded) => {
if (err) {
console.error(err);
} else {
console.log(decoded);
}
});
上面的代码使用 jsonwebtoken
模块验证 JWT 令牌。我们提供了一个 secret
,它用于检查令牌的真实性。我们还提供了一个 token
,它包含要验证的信息。通过调用 jwt.verify
函数,我们获得了令牌的解密信息。如果令牌无效,则将返回错误。
通过本教程,我们学习了如何使用 Node.js 创建和验证 JWT 令牌。JWT 是一种轻量级和安全的身份验证解决方案,适用于许多应用程序。