実現したいこと
以下のcurlコマンドをjavascriptで再現したいのですがうまくいきません。
curl
1curl --request POST \ 2 --url https://testdomain/oauth2/v1/token \ 3 --header 'accept: application/json' \ 4 --header 'cache-control: no-cache' \ 5 --header 'content-type: application/x-www-form-urlencoded' \ 6 --data 'grant_type=authorization_code&client_id=0oabygpxgk9lXaMgF0h7&redirect_uri=yourApp%3A%2Fcallback&code=CKA9Utz2GkWlsrmnqehz&code_verifier=M25iVXpKU3puUjFaYWg3T1NDTDQtcW1ROUY5YXlwalNoc0hhakxifmZHag'
発生している問題・分からないこと
postmanで試した結果、正しい結果を取得できることは確認できましたが
javascriptで正しい結果を得ることができません。
該当のソースコード
javascript
1 var restAPIURL=this.baseURL+"oauth2/v1/token"; 2 var req = new XMLHttpRequest(); // HTTPでファイルを読み込むためのXMLHttpRrequestオブジェクトを生成 3 req.open("POST",restAPIURL, false); // アクセスするファイルを指定 4 req.setRequestHeader("Accept","application/json"); 5 req.setRequestHeader("cache-control","no-cache"); 6 req.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 7 8 var postData='grant_type=authorization_code' 9 +'&redirect_uri='+encodeURIComponent(this.config.redirectUri) 10 +'&code='+this.config.authorization_code 11 +'&code_verifier='+code_verifier; 12 13req.send(encodeURIComponent(postData));
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
以下の参考にしているページを張ります。
補足
特になし
そもそも論ですが、そのトークンは書いて大丈夫なものでしょうか?
(回答すると質問自体が削除されづらくなってしまうので、問題がないことを確認してから回答に移りたい、という感覚です)
はい、書いてはいけないものは削除しています。
> javascriptで正しい結果を得ることができません。
具体的に、どうなっているのですか?
以下のようなエラーが発生します。
{"error":"invalid_client","error_description":"Browser requests to the token endpoint must use Proof Key for Code Exchange."}
> 以下のようなエラーが発生します。
書かれたメッセージから調べてみたこと、試したことなどはありませんか?
ありがとうございます。
postmanでヘッダにOrigin要素を追加したところ同じエラーを確認できました。
ご解決ということでよろしいでしょうか?
はい、解決しました。ご協力ありがとうございました。
それは何よりです。
お手数ですが、自己解決の処理をお願いします。
https://teratail.com/help#resolve-myself

回答3件
あなたの回答
tips
プレビュー