問題タブ [pkce]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
755 参照

spring-boot - oauth2 トークン リクエストの追加パラメータ

oauth2 クライアントのバックエンドを開発しています。私は PKCE 拡張機能を備えた authorization_grant フローを使用しています。コードベリファイアとコードチャレンジがクライアント側で生成されるように実装しようとしています。そのため、トークン リクエストに追加のパラメーターを追加する必要があります (入力が認証コードで、アプリケーションがそれをアクセス トークンと交換する場合の 2 番目のリクエスト)。私のアプリは、この code_verifier をリクエスト パラメータから取得し、認証コード、クライアント ID、およびクライアント シークレットとともに認証サーバーに渡す必要があります。

そのため、spring-security-oauth2-client をカスタマイズしてパラメーターを追加するのに苦労しています。OAuth2AuthorizationRequestResolver を実装することで、そのようなパラメータを認可リクエストに追加する方法はありますが、トークン リクエストにパラメータを追加する類似の方法はありますか?

または、このエンドポイントを手動で実装する必要がありますか?

0 投票する
2 に答える
893 参照

javascript - Spotify PKCE code_verifier が正しくありませんでした

PKCE 経由でバックエンド アプリケーションを使用しなくても、Spotify Web API を使用できるようになったと聞いて興奮しました。残念ながら、私はある種の誤解をしているようで、それを機能させることができませんでした。

途中で小さな間違いを犯している可能性がありますが、一度やったことが無駄で、スレートをきれいに拭いて再試行しましたが、まだ運がありません. このことから、ドキュメンテーションを誤解しているに違いないと思います。

私が何をしているのかを説明し、ここで誰かが私が見逃していることや間違っていることを指摘してくれることを願っています. 基本的な概念の誤解があると思います。

最初に、crypto-random-string という npm パッケージを使用して、暗号的にランダムな文字列を生成します。それをブラウザーのローカル ストレージに保存してから、js-sha256 を使用してハッシュし、base64url という別の npm パッケージを使用してエンコードします。

ここから、適切な URL パラメーターを使用して /authorize エンドポイントにリダイレクトします。私はここまで成功し、それに応じて、提供された redirect_uri にリダイレクトされました。そこで、url パラメーターから指定されたコードを取得します。

この時点で、client_id、grant_type、url パラメーターから取得したコード、redirect_uri、およびローカルに保存された code_verifier を使用して、/api/token エンドポイントへのフェッチを試みます。

この時点で、両方の試行の後、エラーを受け取りました:

私が明らかに間違っていることはありますか?このエラーは、code_verifier の実際の生成に関する限り、私が何か間違ったことをしていると信じさせますが、その問題が何であるかについて途方に暮れています。