问题是,我想定期(每周两次)向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,请告诉我们。谢谢!