我们使用 Web 服务器身份验证流程实现了 OAuth 2.0。十月/十一月时运行良好,但突然停止运行。每当我们尝试授权另一个客户端时,服务器都会返回 (400) Bad Request 和正文
{"error":"unsupported_grant_type","error_description":"grant type not supported"}
grant_type设置为authorization_code,绝对有效。
OAuth 突然停止工作有什么原因吗?
这就是我们实现 OAuth 的方式:
第一个用户被定向到:
Salesforce 会提示用户登录其帐户。
用户通过身份验证后,Salesforce 调用 Callback.aspx,Callback.aspx 代表客户端通过向以下地址发出 POST 请求来请求刷新令牌:https://login.salesforce.com/services/oauth2/token 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
经过大量摆弄 fiddler 后发现 HTTP POST 有效负载中 grant_type=authorization_code 之前有一个空格导致了问题。
有趣的是,自 7 月以来,代码库中一直存在空间,并且该问题于 1 月 14 日首次被注意到。Salesforce 可能修复了错误或进行了内部更改,以在 grant_type=authorization_code 之前拒绝空间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)