7

我们使用 Web Server Authentication Flow 实现了 OAuth 2.0。它在 10 月/ 11 月运行良好,但突然停止运行。每当我们尝试授权另一个客户端时,服务器都会返回 (400) Bad Request 和正文

{"error":"unsupported_grant_type","error_description":"grant type not supported"}

grant_type 设置为 authorization_code 绝对有效。

OAuth 突然停止工作有什么原因吗?


这就是我们实现 OAuth 的方式:

第一个用户被定向到:https ://login.salesforce.com/services/oauth2/authorize?response_type=code&client_id=blah.id&redirect_uri=https://domain.com/Web/Salesforce/Callback.aspx&scope=api%20refresh_token

Salesforce 提示用户登录其帐户。

一旦用户通过 Salesforce 调用 Callback.aspx 的身份验证,Callback.aspx 通过向以下网址发出 POST 请求代表客户端请求刷新令牌:https ://login.salesforce.com/services/oauth2/token带有有效负载:

grant_type=authorization_code&code=blah.code&client_id=blah.Id&client_secret=11111111&redirect_uri=https://domain.com/Web/Salesforce/Callback.aspx

内容类型肯定是:application/x-www-form-urlencoded

4

2 回答 2

5

经过大量摆弄提琴手后,发现 HTTP POST 有效负载中的 grant_type=authorization_code 之前有一个空格导致了问题。

有趣的是,自 7 月以来,代码库中一直存在空间,并且此问题在 1 月 14 日首次发现。Salesforce 可能修复了错误或进行了内部更改以在 grant_type=authorization_code 之前拒绝空间。

于 2013-01-18T00:15:20.930 回答
1

确保您使用的是“https”而不是 http

如果您在通过终端 sfdx 命令授权组织时遇到此错误 -

error authenticating with auth code due to: grant type not supported

为我工作“https”解决了我的授权类型不受支持的问题。

于 2021-08-31T06:25:10.943 回答