我们使用Web服务器身份验证流程实施了OAuth 2.0。它在10月/ 11月工作正常,但突然间它已经停止工作了。每当我们尝试授权另一个客户端时,服务器返回(400)与主体的错误请求
{"error":"unsupported_grant_type","error_description":"grant type not supported"}
grant_type设置为authorization_code,绝对有效。
为什么OAuth会突然停止工作?
这就是我们实施OAuth的方式:
Salesforce会提示用户登录其帐户。
一旦用户通过身份验证,Salesforce就会调用Callback.aspx,Callback.aspx代表客户端请求刷新令牌,方法是向https://login.salesforce.com/services/oauth2/token发送带有效负载的POST请求:
grant_type = authorization_code&安培;代码= blah.code&安培; CLIENT_ID = blah.Id&安培; client_secret = 11111111&安培; REDIRECT_URI = HTTPS://domain.com/Web/Salesforce/Callback.aspx
内容类型绝对是:application / x-www-form-urlencoded
答案 0 :(得分:2)
在fiddler大量摆弄之后发现在HTTP POST有效负载中的grant_type = authorization_code之前有一个空格导致了这个问题。
有趣的是,自7月以来,代码库中存在空间,并且该问题于1月14日首次被发现。在grant_type = authorization_code之前,Salesforce可能修复了错误或进行了内部更改以拒绝空间。