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
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'
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
Les données doivent être transmises comme indiqué ci-dessous