We are currently navigating a challenge with the password reset flow that likely affects many enterprise clients managing multi-platform ecosystems (e.g., Web and Mobile).
We have a shared Auth0 tenant serving both a Web application and a Mobile app. Currently, the “Back to Login” button at the end of the password reset flow is enabled via the “Tenant Login URI” in the Advanced Settings.
Since the “Tenant Login URI” is a single global setting, it cannot distinguish between different client_ids.
-
When a mobile user completes a password reset, they click “Back to Login.”
-
The browser redirects them to the Web application’s login route (the global URI).
-
This triggers a new login transaction with the Web app’s
client_id. -
Even upon a successful login, the user encounters an
invalid stateerror. This happens because the OIDCstateparameter initiated by the mobile app does not match the session context of the web app’s redirect.
We considered using a deep link to the mobile app’s /login route as the “Tenant Login URI,” but this creates a poor user experience as the browser window closes and re-opens abruptly.
It would be ideal if the “Back to Login” button behaved like the “Back to {tenant name}” button found on the “Forgot Password” prompt—maintaining the context of the original application. Specifically, allowing for an Application-level Login URI or a way to dynamically resolve the return path based on the client_id that initiated the flow would resolve this state conflict.