Keycloak:无法从自定义 spi 获取令牌

Keycloak: cannot get token from a custom spi

我必须通过 keycloak 创建两个休息服务。 第一个向 phone 号码发送验证码。如果给定 phone 号码的验证码正确,第二个将向用户授予令牌。

我按照 https://github.com/FX-HAO/keycloak-phone-authenticator 中的指南创建了一个带有自定义 SPI 的模块。可以找到提供者。我还创建了直接授权流程副本,并将其设为领域的默认直接授权流程。

我可以发送验证码到http://{host}//auth/realms/{my_realm}/{my_provider}/send_sms

但是,我无法使用以下请求获取令牌:

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}'

我一直收到 invalid_client_credentials 错误,似乎我的提供者没有被调用,因为它的日志中没有任何内容。 我做错了什么?

正如@sventorben 所说,问题在于为客户端指定了错误的凭据