Search code examples
keycloakkeycloak-rest-api

Keycloak: cannot get token from a custom spi


I have to create two rest services via keycloak. The first one sends a verification code to a phone number. The second one grant a token to a user if the verification code is correct for a given phone number.

I have created a module with a custom SPI following the guide in https://github.com/FX-HAO/keycloak-phone-authenticator. The provider can be found. I have also created the Direct grant flow copy and made it the default direct grant flow for the realm.

I can send the verification code with a request to http://{host}//auth/realms/{my_realm}/{my_provider}/send_sms

However, I cannot get the token using the following request:

curl -X POST  http://{host}/auth/realms/{my realm}/protocol/openid-connect/token  
-H 'authorization: Basic {my keycloak admin username and password}'  
-H 'content-type: application/x-www-form-urlencoded'  -d 'grant_type=password&phone_number={phone number}&code={code}'

I keep getting the invalid_client_credentials error and it seems that my provider is not called because there is nothing in its logs. What am I doing wrong?


Solution

  • As @sventorben said, the problem was in specifying wrong credentials for the client