0

如何解码从 oauth2Client.getToken 收到的 id_token 以访问 JWT JSON 字段 email、sub、..?google-api-nodejs-client 库中是否包含功能?在https://developers.google.com/accounts/docs/OpenIDConnect中说:

由于大多数 API 库将验证与解码 base64 和解析 JSON 的工作结合在一起,因此您可能最终会在访问 ID 令牌中的字段时验证令牌。

oauth2Client.getToken(req.query.code, function(err, tokens) {
    // how to decode tokens.id_token to get 
});
4

1 回答 1

0

根据RFC,JSON Web Token 在编码后由三部分组成(每一部分都是一个 base64 编码的 JSON 对象),由点分隔:

  1. 标题
  2. 实际数据
  3. 签名

与 Google API 一起使用时,标头几乎是一个常量。您将需要第二部分。

为了更好地可视化这一点,请查看jwt.io - 它会以颜色显示编码令牌的确切结构!:)

我建议你仔细研究它是如何工作的,然后安装一个 npm 模块(周围有很多,搜索jwt)来为你做实际的解码。

于 2014-12-11T08:58:14.730 回答