2016-09-30 4 views
3

私はOAuthドキュメント(認証情報付き)で正確なPOSTリクエストを実行していると思いますが、400エラーが発生しています。 404エラーが発生しましたが、client_secretをリセットして、新しいclient_secretを使用し始めましたが、現在は不正なリクエストエラーが発生しています。私が間違っていることは何ですか?Google OAuth2.0を使用したrefresh_tokenの正確なPOST時の不正なリクエストエラー

$.ajax({ 
    url:'https://www.googleapis.com/oauth2/v4/token', 
    data:{ 
    'code':getParameterByName('code'), 
     'client_id':'', 
     'client_secret':'', 
     'redirect_uri':encodeURI(url+'?mail=tokened'), 
     'grant_type':'authorization_code' 
    }, 
    dataType:'json', 
    method:'POST', 
    success:function(response){console.log(response);}}); 

答えて

0

これはロングショットであってもよいが、(セクションがOAuth 2.0のサーバ応答の処理)Using OAuth 2.0 for Web Server Applicationsで利用可能なHTTP/REST例によれば、あなたがapplication/x-www-form-urlencodedの代わりのコンテンツタイプとペイロードを送信すべきですJSON。

仕様に記載されているapplication/x-www-form-urlencoded以外のJSONペイロードを受け入れる他のOAuth実装を見てきましたが、Googleの実装がより厳しいかもしれません。

+0

返信いただきありがとうございます、私はそれについて考えていましたが、それを修正することを望んでいましたが、それはできませんでした。 – wordSmith

0

私はあなたのコードをテストしました。あなたが有効な認証コードを持っていて、それに応じてクライアントID、シークレット、およびリダイレクトURIを記入するとうまくいきます。あなたのスニペットでは、client_idとclient_secretは空の文字列に設定されています。これは動作していない可能性があります。 Google OAuthエンドポイントは、Bad Requestレスポンスとともにniceエラーメッセージを返すので、送信したパラメータの問題を発見するのに役立ちます。

0

ほとんどの場合、送信するredirect_uriの値はオフです。 正確にはで、許可リクエストで送信したURL、つまり先に許可エンドポイントにリダイレクトする必要があります。

+0

それはそうではありません。私が知っているURLに変更しようとしましたが、それ以前に何かが有効になっています – wordSmith

0

grant_typeは 'authorization_code'と異なる必要があります。トークンを取得する際に問題が発生しています。 try grant_type = refresh_token

関連する問題