【问题标题】:how to extract info from JWT token?如何从 JWT 令牌中提取信息?
【发布时间】:2021-10-22 17:12:57
【问题描述】:

这是我的令牌的生成方式:

const generate_web_token = function (user) {
  const token = jwt.sign(
    {
      _id: user._id,
      email: user.email,
      password: user.password,
    },
    process.env.SECRET_TOKEN_KEY
  );
  return token;
};

现在,当客户端向服务器发送请求时,服务器如何提取例如_id字段?

【问题讨论】:

标签: node.js jwt express-jwt


【解决方案1】:

标头和声明只是(网址安全)base64 编码。只有签名被加密和编码。因此,您可以将其拆分为 .,然后根据声明对中间部分进行解码。

const jwt = `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c`

const claims = atob(jwt.split('.')[1])

console.log(claims)

你可以在这里https://jwt.io/阅读更多关于令牌的信息。

由于您使用库来为您处理令牌,因此最好使用它的功能来执行此操作。

var jwt = require('jsonwebtoken');
var token = jwt.sign({ foo: 'bar' }, 'shhhhh');
// some time later
var decodedClaims = jwt.verify(token, 'shhhhh');
console.log(decodedClaims.foo) // bar

【讨论】:

    猜你喜欢
    • 2017-10-12
    • 2016-01-14
    • 2022-06-13
    • 2017-02-13
    • 2021-11-16
    • 2021-12-06
    • 2020-01-03
    • 2016-05-10
    • 2016-01-31
    相关资源
    最近更新 更多