google-api-nodejs-client /如何解码从oauth2Client.getToken收到的id_token

时间:2014-12-10 10:31:54

标签: node.js oauth-2.0 google-api-nodejs-client

如何解码从oauth2Client.getToken收到的id_token以访问JWT JSON字段email,sub,..? google-api-nodejs-client lib中是否包含一项功能? 在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 
});

1 个答案:

答案 0 :(得分:0)

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

  1. 标题
  2. 实际数据
  3. 签名
  4. 与Google API一起使用时标题几乎是常量。你将需要第二部分。

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

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