📜  解码 jwt 令牌 - Javascript (1)

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

解码 JWT 令牌 - Javascript

在现代的 Web 应用程序中,我们常常使用 JWT 令牌来验证用户的身份。JWT 令牌就是一个加密的字符串,其中包含了用户的身份信息、权限信息等。

当我们需要使用 JWT 令牌时,通常需要对其进行解码,以提取出其中的用户信息等内容。

在 Javascript 中,我们可以使用第三方库 jsonwebtoken 来解码 JWT 令牌。下面是一个示例:

const jwt = require('jsonwebtoken');
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';

// decode token
const decoded = jwt.decode(token, { complete: true });

// print decoded header and payload
console.log(decoded.header);
console.log(decoded.payload);

在上面的代码中,我们首先引入了 jsonwebtoken 库,并定义了一个名为 token 的变量,其中包含了我们要解码的 JWT 令牌。

接着,我们使用 jwt.decode() 函数来对 JWT 令牌进行解码,将解码后的结果保存在 decoded 变量中。

最后,我们可以通过访问 decoded.headerdecoded.payload 属性来分别获取 JWT 令牌的头部信息和载荷信息。在本例中,我们解码后得到的头部信息为:

{
  "alg": "HS256",
  "typ": "JWT"
}

而载荷信息为:

{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

需要注意的是,在上面的例子中,我们使用 decode() 函数来解码 JWT 令牌,并没有对其进行验证。在实际应用中,我们通常需要使用 verify() 函数对 JWT 令牌进行验证,以确保其是有效的、未过期的等。

总之,使用 jsonwebtoken 库可以轻松地对 JWT 令牌进行解码,并获取其中的用户信息等内容。