📜  调用 jwt (1)

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

调用 JWT

JSON Web Tokens (JWT),是一种安全的身份验证机制,可以在身份验证请求和响应之间传递认证与授权信息。JWT 成功地在多个场景中应用,比如单点登录、OAuth 授权等。在本文中,我们将关注如何在你的应用程序中调用 JWT。

安装和导入

首先,你需要安装 JWT 包。在终端(Terminal)中输入以下命令:

npm install jsonwebtoken

然后,在应用程序代码文件中,导入以下代码:

const jwt = require('jsonwebtoken');
创建 JWT

要创建 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

要验证 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 的安全身份验证机制了。

参考资料: