7

Web サーバー認証フローを使用して 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 はクライアントに代わってリフレッシュ トークンを要求します。

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 日に初めて発見されました。

于 2013-01-18T00:15:20.930 に答える