web-dev-qa-db-fra.com

Accéder à l'API keycloak de postman

J'ai essayé d'accéder à l'API keycloak à partir du facteur. mais il montre 400 mauvaise demande.

J'appelais api dans le format ci-dessous. 

http://{hostname}:8080/auth/realms/master/protocol/openid-connect/token?username=admin&password=admin&client_id=admin-cli&grant_type=password

Dans les en-têtes, j'ai défini le content_type as application/x-www-form-urlencoded

Je reçois la réponse ci-dessous.

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

Quelqu'un peut-il m'aider? Toute aide sera appréciée. Merci d'avance

6
Programmer

L'URL que vous utilisez est pour obtenir le jeton.

La demande de jeton doit être un appel POST, la demande que vous publiez est une demande GET. Ci-dessous un exemple de CURL sur la façon de demander le access_token

curl -X POST \
   http://{hostname}:8080/auth/realms/{realm}/protocol/openid-connect/token \
   -H 'Content-Type: application/x-www-form-urlencoded' \
   -d 'username=admin&password=admin&grant_type=password&client_id=admin-cli'
1
Pablo Bastidas

Vous appelez l'API via le client POST

URL - http: // localhost: 8080/auth/realms/Démo/protocole/openid-connect/token

Donc, ici, dans l’URL ci-dessus, j’utilise Demo comme mon royaume au lieu de master.

ContentType - "Content-Type": "application/x-www-form-urlencoded"

Params:

{

"client_secret" : "90ec9638-7647-4e65-ad20-b82df3341084",
"username" : "ankur",
"password" : "123456",
"grant_type" : "password",
"client_id": "app-client"

}

Définir l'en-tête comme ci-dessous

 enter image description here

Les données doivent être transmises comme indiqué ci-dessous enter image description here

0
Ankur Singhal