Google服务帐户“无效的JWT签名”

时间:2018-09-28 18:00:54

标签: google-api google-oauth2 webdna

我正在尝试在webDNA中编写一些代码以连接到Google Drive API。使用服务帐户似乎是针对给定问题的最佳解决方案。从我看过的过程是...创建JWT,将JWT发送给Google以获取令牌响应,然后将所采取的响应发送给调用api方法。我认为我的问题与私钥有关。

我构建并加密标题:

Keras-Applications==1.0.4

下一步构建并加密声明(为便于阅读添加了空白):

Keras-Preprocessing==1.0.2

这些部分似乎是正确的,现在建立签名:

[text]header={"alg":"RS256","typ":"JWT"}[/text]
[text]header=[encrypt method=Base64][header][/encrypt][/text]
[text]header=[db_base64URL varName=header][/text][!]custom function to deal with special characters[/!]

我尝试将[p_key]在sha256加密外部和内部进行移动,无论是否带有'。',在尝试使用[TCPConnect]和[TCPSend]将其发送给Google之前,我不会收到错误消息]此处:

[text]claim={
"iss":"xxx",
"scope":"https://www.googleapis.com/auth/drive",
"aud":"https://www.googleapis.com/oauth2/v4/token",
"exp":[Math][cTime]+3600[/Math],
"iat":[cTime]
}[/text]
[text]claim=[encrypt method=Base64][claim][/encrypt][/text]
[text]claim=[db_base64URL varName=claim][/text]

显示响应时,其显示为:

[text]p_key=-----BEGIN PRIVATE KEY-----xxxx-----END PRIVATE KEY-----\n[/text]
[text]sig=[encrypt method=SHA256][header].[claim].[p_key][/encrypt][/text]
[text]sig=[encrypt method=Base64][sig][/encrypt][/text]
[text]sig=[db_base64URL varName=sig][/text]

此错误消息的帮助程度较小,据我所读,它可能意味着许多东西中的一个(或多个),而Google在此方面的文档并不完全有用。如果有人有通过webDNA使用google api的经验,我将不胜感激!

0 个答案:

没有答案