谷歌拒绝JWT - NodeJS& jsonwebtoken

时间:2016-10-19 15:01:50

标签: node.js google-api json-web-token

问题是,我想定期(每周两次)向Google搜索 Google Developer帐户中的应用评论

我想将它们自动存储在我在 NodeJS服务器中的数据库中,我的工作是根据他们的指示向Google发送 HTTPS 请求Google's OAuth2.0 docs

总是我得到这个回复,令牌似乎签名严重(我正在弄乱签名,但不知道是什么):

{

    "error": "invalid_grant",
    "error_description": "Invalid JWT Signature.",
    "error_uri": ""

}

我做什么

我使用 jsonwebtoken 找到here in GitHub的插件。然后,我用:

签名
let signed = jwt.sign( payload, secure.getPrivateKey(), { algorithm: 'RS256'} );

最后,我将签名附加在有效载荷的末尾,结果类似于:

  

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJvYmZ1c2NhdGVkIGZvciBvYmlvdXMgcmVhc29ucyA6KSIsInNjb3BlIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLnJlYWRvbmx5IiwiYXVkIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3Y0L3Rva2VuIiwiZXhwIjoxNDc2ODkxMjU5LCJpYXQiOjE0NzY4ODc2NTl9

您可以结帐JWT.io here查看有效负载组合。

数据

所有字段都是从 keys.json 中提取出来的,当我几天前创建项目时谷歌确实从开发者控制台给我这个文件。

iss字段取自字段“client_email”以.iam.gserviceaccount.com结尾

secure.getPrivateKey()“private_key”字段中获取信息。

因此,如果有人使用服务器到服务器身份验证使用Google OAuth,请告诉我们。谢谢!

0 个答案:

没有答案