📜  创建 jwt 令牌打字稿(1)

📅  最后修改于: 2023-12-03 14:50:14.122000             🧑  作者: Mango

创建 JWT 令牌

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 函数,在 payloadsecret 的帮助下,我们获得了 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 是一种轻量级和安全的身份验证解决方案,适用于许多应用程序。