You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
using your dummy provider I send a request like this and get an authentication code, localhost:8080/realms/master/sms/authentication-code?phoneNumber=+905061547915
and then I go to this endpoint to get the token using the verification code I received.
{
"error": "invalid_grant",
"error_description": "Invalid user credentials"
}
And here's the detail;
examples-keycloak-1 | 2023-08-31 12:48:39,383 INFO [cc.coopersoft.keycloak.phone.providers.spi.impl.DefaultPhoneVerificationCodeProvider] (executor-thread-21) valid AUTH , phone: +905061547915, code: 239254
examples-keycloak-1 | 2023-08-31 12:48:39,386 INFO [cc.coopersoft.keycloak.phone.authentication.authenticators.directgrant.AuthenticationCodeAuthenticator] (executor-thread-21) Grant authenticator valid code failure: javax.ws.rs.BadRequestException: There is no valid ongoing authentication process
examples-keycloak-1 | at cc.coopersoft.keycloak.phone.providers.spi.impl.DefaultPhoneVerificationCodeProvider.validateCode(DefaultPhoneVerificationCodeProvider.java:149)
examples-keycloak-1 | at cc.coopersoft.keycloak.phone.authentication.authenticators.directgrant.AuthenticationCodeAuthenticator.lambda$validateVerificationCode$2(AuthenticationCodeAuthenticator.java:43)
examples-keycloak-1 | at java.base/java.util.Optional.ifPresentOrElse(Optional.java:196)
examples-keycloak-1 | at cc.coopersoft.keycloak.phone.authentication.authenticators.directgrant.AuthenticationCodeAuthenticator.validateVerificationCode(AuthenticationCodeAuthenticator.java:41)
examples-keycloak-1 | at cc.coopersoft.keycloak.phone.authentication.authenticators.directgrant.AuthenticationCodeAuthenticator.lambda$authenticate$0(AuthenticationCodeAuthenticator.java:33)
examples-keycloak-1 | at java.base/java.util.Optional.ifPresentOrElse(Optional.java:196)
examples-keycloak-1 | at cc.coopersoft.keycloak.phone.authentication.authenticators.directgrant.AuthenticationCodeAuthenticator.authenticate(AuthenticationCodeAuthenticator.java:33)
examples-keycloak-1 | at org.keycloak.authentication.DefaultAuthenticationFlow.processSingleFlowExecutionModel(DefaultAuthenticationFlow.java:445)
examples-keycloak-1 | at org.keycloak.authentication.DefaultAuthenticationFlow.processFlow(DefaultAuthenticationFlow.java:249)
examples-keycloak-1 | at org.keycloak.authentication.DefaultAuthenticationFlow.processSingleFlowExecutionModel(DefaultAuthenticationFlow.java:380)
examples-keycloak-1 | at org.keycloak.authentication.DefaultAuthenticationFlow.processFlow(DefaultAuthenticationFlow.java:249)
examples-keycloak-1 | at org.keycloak.authentication.AuthenticationProcessor.authenticateOnly(AuthenticationProcessor.java:1025)
examples-keycloak-1 | at org.keycloak.protocol.oidc.endpoints.TokenEndpoint.resourceOwnerPasswordCredentialsGrant(TokenEndpoint.java:637)
examples-keycloak-1 | at org.keycloak.protocol.oidc.endpoints.TokenEndpoint.processGrantRequestInternal(TokenEndpoint.java:222)
examples-keycloak-1 | at org.keycloak.protocol.oidc.endpoints.TokenEndpoint.access$100(TokenEndpoint.java:130)
examples-keycloak-1 | at org.keycloak.protocol.oidc.endpoints.TokenEndpoint$1.runInternal(TokenEndpoint.java:184)
examples-keycloak-1 | at org.keycloak.common.util.ResponseSessionTask.run(ResponseSessionTask.java:67)
examples-keycloak-1 | at org.keycloak.common.util.ResponseSessionTask.run(ResponseSessionTask.java:44)
examples-keycloak-1 | at org.keycloak.models.utils.KeycloakModelUtils.runJobInRetriableTransaction(KeycloakModelUtils.java:299)
examples-keycloak-1 | at org.keycloak.protocol.oidc.endpoints.TokenEndpoint.processGrantRequest(TokenEndpoint.java:177)
examples-keycloak-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
examples-keycloak-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
examples-keycloak-1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
examples-keycloak-1 | at java.base/java.lang.reflect.Method.invoke(Method.java:568)
examples-keycloak-1 | at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
examples-keycloak-1 | at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
examples-keycloak-1 | at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:192)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:152)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:183)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:141)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:32)
examples-keycloak-1 | at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
examples-keycloak-1 | at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
examples-keycloak-1 | at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
examples-keycloak-1 | at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
examples-keycloak-1 | at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
examples-keycloak-1 | at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
examples-keycloak-1 | at io.quarkus.resteasy.runtime.standalone.RequestDispatcher.service(RequestDispatcher.java:73)
examples-keycloak-1 | at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.dispatch(VertxRequestHandler.java:151)
examples-keycloak-1 | at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.handle(VertxRequestHandler.java:82)
examples-keycloak-1 | at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.handle(VertxRequestHandler.java:42)
examples-keycloak-1 | at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1284)
examples-keycloak-1 | at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:173)
examples-keycloak-1 | at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:140)
examples-keycloak-1 | at io.quarkus.vertx.http.runtime.StaticResourcesRecorder$2.handle(StaticResourcesRecorder.java:84)
examples-keycloak-1 | at io.quarkus.vertx.http.runtime.StaticResourcesRecorder$2.handle(StaticResourcesRecorder.java:71)
examples-keycloak-1 | at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1284)
examples-keycloak-1 | at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:173)
examples-keycloak-1 | at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:140)
examples-keycloak-1 | at io.quarkus.vertx.http.runtime.VertxHttpRecorder$6.handle(VertxHttpRecorder.java:430)
examples-keycloak-1 | at io.quarkus.vertx.http.runtime.VertxHttpRecorder$6.handle(VertxHttpRecorder.java:408)
examples-keycloak-1 | at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1284)
examples-keycloak-1 | at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:173)
examples-keycloak-1 | at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:140)
examples-keycloak-1 | at org.keycloak.quarkus.runtime.integration.web.QuarkusRequestFilter.lambda$createBlockingHandler$0(QuarkusRequestFilter.java:82)
examples-keycloak-1 | at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:576)
examples-keycloak-1 | at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
examples-keycloak-1 | at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
examples-keycloak-1 | at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
examples-keycloak-1 | at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
examples-keycloak-1 | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
examples-keycloak-1 | at java.base/java.lang.Thread.run(Thread.java:833)
examples-keycloak-1 |
examples-keycloak-1 |
examples-keycloak-1 | 2023-08-31 12:48:39,392 WARN [org.keycloak.events] (executor-thread-21) type=LOGIN_ERROR, realmId=47f61b65-4ab5-406e-8396-448de1dccea4, clientId=account, userId=eb6273f3-251d-41fe-8432-64846f93fc28, ipAddress=127.0.0.1, error=invalid_user_credentials, auth_method=openid-connect, grant_type=password, client_auth_method=client-secret, authSessionParentId=43894ddf-85f6-42ea-8391-c32e71dcc211, authSessionTabId=NXOCqIdYIBM
can you tell me what I did wrong?
The text was updated successfully, but these errors were encountered:
Can someone please help with this question? I’m also encountering the same error when calling the API. It works fine via the Keycloak browser, but not through the API.
greetings, my direct grant flow is like this ;
My docker compose settings are like this;
using your dummy provider I send a request like this and get an authentication code, localhost:8080/realms/master/sms/authentication-code?phoneNumber=+905061547915
and then I go to this endpoint to get the token using the verification code I received.
curl -X POST
'http://localhost:8080/realms/master/protocol/openid-connect/token'
--header 'Accept: /'
--header 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'grant_type=password'
--data-urlencode 'client_id=account'
--data-urlencode 'client_secret=UB3PXYC3v8oasalVzCFlGBUh1Wd23bUe'
--data-urlencode 'phone_number=+905061547915'
--data-urlencode 'code=441457'
and this is the answer I got;
{
"error": "invalid_grant",
"error_description": "Invalid user credentials"
}
And here's the detail;
examples-keycloak-1 | 2023-08-31 12:48:39,383 INFO [cc.coopersoft.keycloak.phone.providers.spi.impl.DefaultPhoneVerificationCodeProvider] (executor-thread-21) valid AUTH , phone: +905061547915, code: 239254
examples-keycloak-1 | 2023-08-31 12:48:39,386 INFO [cc.coopersoft.keycloak.phone.authentication.authenticators.directgrant.AuthenticationCodeAuthenticator] (executor-thread-21) Grant authenticator valid code failure: javax.ws.rs.BadRequestException: There is no valid ongoing authentication process
examples-keycloak-1 | at cc.coopersoft.keycloak.phone.providers.spi.impl.DefaultPhoneVerificationCodeProvider.validateCode(DefaultPhoneVerificationCodeProvider.java:149)
examples-keycloak-1 | at cc.coopersoft.keycloak.phone.authentication.authenticators.directgrant.AuthenticationCodeAuthenticator.lambda$validateVerificationCode$2(AuthenticationCodeAuthenticator.java:43)
examples-keycloak-1 | at java.base/java.util.Optional.ifPresentOrElse(Optional.java:196)
examples-keycloak-1 | at cc.coopersoft.keycloak.phone.authentication.authenticators.directgrant.AuthenticationCodeAuthenticator.validateVerificationCode(AuthenticationCodeAuthenticator.java:41)
examples-keycloak-1 | at cc.coopersoft.keycloak.phone.authentication.authenticators.directgrant.AuthenticationCodeAuthenticator.lambda$authenticate$0(AuthenticationCodeAuthenticator.java:33)
examples-keycloak-1 | at java.base/java.util.Optional.ifPresentOrElse(Optional.java:196)
examples-keycloak-1 | at cc.coopersoft.keycloak.phone.authentication.authenticators.directgrant.AuthenticationCodeAuthenticator.authenticate(AuthenticationCodeAuthenticator.java:33)
examples-keycloak-1 | at org.keycloak.authentication.DefaultAuthenticationFlow.processSingleFlowExecutionModel(DefaultAuthenticationFlow.java:445)
examples-keycloak-1 | at org.keycloak.authentication.DefaultAuthenticationFlow.processFlow(DefaultAuthenticationFlow.java:249)
examples-keycloak-1 | at org.keycloak.authentication.DefaultAuthenticationFlow.processSingleFlowExecutionModel(DefaultAuthenticationFlow.java:380)
examples-keycloak-1 | at org.keycloak.authentication.DefaultAuthenticationFlow.processFlow(DefaultAuthenticationFlow.java:249)
examples-keycloak-1 | at org.keycloak.authentication.AuthenticationProcessor.authenticateOnly(AuthenticationProcessor.java:1025)
examples-keycloak-1 | at org.keycloak.protocol.oidc.endpoints.TokenEndpoint.resourceOwnerPasswordCredentialsGrant(TokenEndpoint.java:637)
examples-keycloak-1 | at org.keycloak.protocol.oidc.endpoints.TokenEndpoint.processGrantRequestInternal(TokenEndpoint.java:222)
examples-keycloak-1 | at org.keycloak.protocol.oidc.endpoints.TokenEndpoint.access$100(TokenEndpoint.java:130)
examples-keycloak-1 | at org.keycloak.protocol.oidc.endpoints.TokenEndpoint$1.runInternal(TokenEndpoint.java:184)
examples-keycloak-1 | at org.keycloak.common.util.ResponseSessionTask.run(ResponseSessionTask.java:67)
examples-keycloak-1 | at org.keycloak.common.util.ResponseSessionTask.run(ResponseSessionTask.java:44)
examples-keycloak-1 | at org.keycloak.models.utils.KeycloakModelUtils.runJobInRetriableTransaction(KeycloakModelUtils.java:299)
examples-keycloak-1 | at org.keycloak.protocol.oidc.endpoints.TokenEndpoint.processGrantRequest(TokenEndpoint.java:177)
examples-keycloak-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
examples-keycloak-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
examples-keycloak-1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
examples-keycloak-1 | at java.base/java.lang.reflect.Method.invoke(Method.java:568)
examples-keycloak-1 | at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
examples-keycloak-1 | at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
examples-keycloak-1 | at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:192)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:152)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:183)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:141)
examples-keycloak-1 | at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:32)
examples-keycloak-1 | at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
examples-keycloak-1 | at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
examples-keycloak-1 | at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
examples-keycloak-1 | at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
examples-keycloak-1 | at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
examples-keycloak-1 | at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
examples-keycloak-1 | at io.quarkus.resteasy.runtime.standalone.RequestDispatcher.service(RequestDispatcher.java:73)
examples-keycloak-1 | at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.dispatch(VertxRequestHandler.java:151)
examples-keycloak-1 | at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.handle(VertxRequestHandler.java:82)
examples-keycloak-1 | at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.handle(VertxRequestHandler.java:42)
examples-keycloak-1 | at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1284)
examples-keycloak-1 | at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:173)
examples-keycloak-1 | at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:140)
examples-keycloak-1 | at io.quarkus.vertx.http.runtime.StaticResourcesRecorder$2.handle(StaticResourcesRecorder.java:84)
examples-keycloak-1 | at io.quarkus.vertx.http.runtime.StaticResourcesRecorder$2.handle(StaticResourcesRecorder.java:71)
examples-keycloak-1 | at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1284)
examples-keycloak-1 | at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:173)
examples-keycloak-1 | at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:140)
examples-keycloak-1 | at io.quarkus.vertx.http.runtime.VertxHttpRecorder$6.handle(VertxHttpRecorder.java:430)
examples-keycloak-1 | at io.quarkus.vertx.http.runtime.VertxHttpRecorder$6.handle(VertxHttpRecorder.java:408)
examples-keycloak-1 | at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1284)
examples-keycloak-1 | at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:173)
examples-keycloak-1 | at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:140)
examples-keycloak-1 | at org.keycloak.quarkus.runtime.integration.web.QuarkusRequestFilter.lambda$createBlockingHandler$0(QuarkusRequestFilter.java:82)
examples-keycloak-1 | at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:576)
examples-keycloak-1 | at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
examples-keycloak-1 | at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
examples-keycloak-1 | at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
examples-keycloak-1 | at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
examples-keycloak-1 | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
examples-keycloak-1 | at java.base/java.lang.Thread.run(Thread.java:833)
examples-keycloak-1 |
examples-keycloak-1 |
examples-keycloak-1 | 2023-08-31 12:48:39,392 WARN [org.keycloak.events] (executor-thread-21) type=LOGIN_ERROR, realmId=47f61b65-4ab5-406e-8396-448de1dccea4, clientId=account, userId=eb6273f3-251d-41fe-8432-64846f93fc28, ipAddress=127.0.0.1, error=invalid_user_credentials, auth_method=openid-connect, grant_type=password, client_auth_method=client-secret, authSessionParentId=43894ddf-85f6-42ea-8391-c32e71dcc211, authSessionTabId=NXOCqIdYIBM
can you tell me what I did wrong?
The text was updated successfully, but these errors were encountered: