在 Postman 中使用 Raw 格式测试 Google API OAuth2 时出错 "java.security.SignatureException: Invalid signature for token"
Error "java.security.SignatureException: Invalid signature for token" while testing Google API OAuth2 using Raw format in Postman
请在下面找到有关实施 SAP-Gmail 集成的完整详细信息。
要求: 使用 OAuth2 的 SAP-GMail 集成
流程: 我创建了服务帐户并遵循了 GoogleAPI OAuth2 - 服务帐户博客中定义的以下标准程序。
https://developers.google.com/identity/protocols/oauth2/service-account
问题: 从 SAP 访问 googleapi for Oauth 2 时,数据以原始格式推送。这给出了错误“java.security.SignatureException:令牌的无效签名”。请在下面找到错误的屏幕截图。
Google API OAuth error
调查结果: 以下是我在邮递员中测试 API 时的调查结果。
- API 成功:
如果我在邮递员中使用 Body -> x-www-form-urlencoded 选项卡,那么我将成功获得访问令牌。
使用下面显示的 HTTP 代码构建。
邮递员截图1:
Postman Success
HTTP 版本 1:
Http Build 1
- 原始格式 API 失败:
如果我在 postman 中使用 Body-> Raw 选项卡,那么我会收到下面显示的 HTTP 代码构建的错误。
邮递员截图2:
Postman error
Postman header 2
HTTP 版本 2:
Http build 2
- 如果你能看到上面的 HTTP 代码在两者中构建,那么你会发现这两个 HTTP 代码很相似,但第一种模式有效,第二种模式(原始格式)无效。
根本原因: 我在验证错误时发现了一个问题,当我以 Raw 格式发布数据时,“+”以某种方式从 JWToken 签名中删除。在错误屏幕截图中突出显示。
这个小错误造成了麻烦,不允许创建令牌。
所以你能帮我解决这个 Raw 格式的问题吗,因为 SAP 支持 Raw 格式发布数据。
此致,
卡兰
最后我自己找到了上述查询的解决方案。
所以实际上在 Postman 中,选项卡“x-www-form-urlencoded”有一小段背景代码,它将纯文本编码为 URL 使用字符集“UTF-8”编码字符串。
此 URL 编码逻辑将许多特殊字符(如“=”替换为“%3D”)。
解法:-
因此,在将 OAuth2 的原始数据发送到 Google API 时,JsonWebToken 字符串需要 URL 使用字符集“UTF-8”进行编码,正如 Google[= 所期望的那样22=].
此致,
卡兰 K
请在下面找到有关实施 SAP-Gmail 集成的完整详细信息。
要求: 使用 OAuth2 的 SAP-GMail 集成
流程: 我创建了服务帐户并遵循了 GoogleAPI OAuth2 - 服务帐户博客中定义的以下标准程序。
https://developers.google.com/identity/protocols/oauth2/service-account
问题: 从 SAP 访问 googleapi for Oauth 2 时,数据以原始格式推送。这给出了错误“java.security.SignatureException:令牌的无效签名”。请在下面找到错误的屏幕截图。
Google API OAuth error
调查结果: 以下是我在邮递员中测试 API 时的调查结果。
- API 成功:
如果我在邮递员中使用 Body -> x-www-form-urlencoded 选项卡,那么我将成功获得访问令牌。 使用下面显示的 HTTP 代码构建。
邮递员截图1: Postman Success
HTTP 版本 1: Http Build 1
- 原始格式 API 失败:
如果我在 postman 中使用 Body-> Raw 选项卡,那么我会收到下面显示的 HTTP 代码构建的错误。
邮递员截图2: Postman error Postman header 2
HTTP 版本 2: Http build 2
- 如果你能看到上面的 HTTP 代码在两者中构建,那么你会发现这两个 HTTP 代码很相似,但第一种模式有效,第二种模式(原始格式)无效。
根本原因: 我在验证错误时发现了一个问题,当我以 Raw 格式发布数据时,“+”以某种方式从 JWToken 签名中删除。在错误屏幕截图中突出显示。
这个小错误造成了麻烦,不允许创建令牌。
所以你能帮我解决这个 Raw 格式的问题吗,因为 SAP 支持 Raw 格式发布数据。
此致, 卡兰
最后我自己找到了上述查询的解决方案。
所以实际上在 Postman 中,选项卡“x-www-form-urlencoded”有一小段背景代码,它将纯文本编码为 URL 使用字符集“UTF-8”编码字符串。
此 URL 编码逻辑将许多特殊字符(如“=”替换为“%3D”)。
解法:- 因此,在将 OAuth2 的原始数据发送到 Google API 时,JsonWebToken 字符串需要 URL 使用字符集“UTF-8”进行编码,正如 Google[= 所期望的那样22=].
此致, 卡兰 K