Получение токена доступа через cURL - PullRequest
0 голосов
/ 09 мая 2018

Простой вопрос:

Почему работает следующий код ... (он отлично возвращает токен доступа)

curl --data "grant_type=client_credentials&client_id=synchronization_tool&client_secret=8f6a6e73-66ca-4f8f-1234-ab909147f1cf" http://localhost:8080/auth/realms/master/protocol/openid-connect/token 

А этот нет?

curl -d  '{"grant_type":"client_credentials","client_secret":"8f6a6e73-66ca-4f8f-1234-ab909147f1cf","client_id":"synchronization_tool"}' http://localhost:8080/auth/realms/master/protocol/openid-connect/token -H "Content-Type: application/json"

Это дает мне:

"error":"invalid_request","error_description":"Missing form parameter: grant_type"}

Разве они не должны быть двумя совершенно аналогичными запросами?

Ответы [ 2 ]

0 голосов
/ 20 июня 2018
curl -d 'client_id=xxx' -d 'username=xxx' -d 'password=xxx' -d 'grant_type=password' 'http://localhost:8080/auth/realms/YOUR_REALM_NAME/protocol/openid-connect/token' | python -m json.tool

Это работает для меня, и это даст вам access_token и session_token

0 голосов
/ 14 мая 2018

Хорошо, похоже, что запросы cURL НЕ АНАЛОГОВЫ.

Кроме того, конечная точка http://localhost:8080/auth/realms/master/protocol/openid-connect/token не понимает JSON и принимает только запросы x-www-form-urlencoded.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...