'how to exchange code to token in Ory Hydra

I'm following Ory Hydra 5 Minute Tutorial.

This tutorial uses a sample Webapp and I'm trying to understand the flow how to convert Code to Token via HTTP POST.

I have several troubles with the POST:
400 Bad Request Request parameter 'grant_type' is missing
400 Bad Request "invalid_grant"
401 Unauthorized "invalid_client"

and it's not clear how to proceed.



Solution 1:[1]

Client Creation

  • During creation of your client make sure to add --token-endpoint-auth-method client_secret_post so that http post is legal later on
  • have your own landingpage (which prints the code for you from the http request for convenience)
docker-compose -f quickstart.yml exec hydra     hydra clients create     --endpoint http://127.0.0.1:4445     --id helloworld-auth-code-client     --secret secret     --grant-types authorization_code,refresh_token     --response-types code,id_token     --scope openid,offline   --token-endpoint-auth-method client_secret_post  --callbacks http://127.0.0.1:3344/loggedin

Login and Retrieve Code

Trigger Login http://127.0.0.1:4444/oauth2/auth?client_id=helloworld-auth-code-client&response_type=code&scope=openid offline&state=hniavseoniasethiohsaent

convert code to token

POST
http://127.0.0.1:4444/oauth2/token
header: Content-Type application/x-www-form-urlencoded
Body: (no curly brackets, just replace the code below and take the following)
response_type=token&grant_type=authorization_code&code=PUTYOURCODEHERE&redirect_uri=http://127.0.0.1:3344/loggedin&client_id=helloworld-auth-code-client&client_secret=secret

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 til