このカールはうまくいきます
curl acme:acmesecret@localhost:9999/uaa/oauth/token -d "password=password&username=user&grant_type=password" -H "Accept: application/json"
このカールでは、acme
とacmesecret
は、localhost:9999
で実行されている承認サーバーで認証するためにアプリケーションが使用するクライアント資格情報です
私はポストマン(クロムの残りのクライアント)を使用して同じ要求をしようとしています。
これがスクリーンショットです(基本認証タブで資格情報を入力しました)
送信されるリクエストのプレビューは次のとおりです:(注:AUthorization基本ヘッダーが追加されます)
「invalid_client」というエラーが発生します。これを修正する方法?
ありがとう
cURL
acme:acmesecret@localhost:9999/uaa/oauth/token
acme:acmesecret
は、基本認証ヘッダーで送信されるHTTPクライアント資格情報です。 -v
スイッチでリクエストのヘッダーを表示します。
-d "password=password&username=user&grant_type=password"
これがフォームデータです。
Postmanリクエストでは、それを切り替えます。フォームデータにクライアント資格情報があり、authヘッダーにユーザー資格情報があると思います。
それらを切り替えるだけです。 OAuth 2.0パスワード許可要求の場合、クライアントの資格情報はauthヘッダーに入れ、ユーザーの資格情報はフォームデータに入れます。
他の人がより明確にする必要がある場合に備えて、この情報はPostmanのドキュメントから非常に役立つことがわかりました。
https://learning.getpostman.com/docs/postman/sending_api_requests/authorization/