Missing "Back to login" button for Password Reset Expired Error

I’m calling the following to customize the reset password prompts:

curl --request PUT \
  --url 'https://my-url.com/api/v2/prompts/reset-password/custom-text/en' \
  --header 'authorization: Bearer <TOKEN>' \
  --header 'content-type: application/json' \
  --data '{ "reset-password": { "description": "Enter and confirm your password below", "buttonText": "Confirm Password", "title": "Set Your Password", "pageTitle": "Set Password"}, "reset-password-request": { "title": "Reset Password", "backToLoginLinkText": "Back to login" }, "reset-password-success": { "buttonText": "Back to login", "eventTitle": "Password Set!", "description": "Your password has been created successfully" }, "reset-password-error": {"descriptionExpired": "To reset your password, return to the login page and select \"Reset Password\" to send a new email.", "descriptionGeneric": "To reset your password, return to the login page and select \"Reset Password\" to send a new email.", "descriptionUsed": "This link has already been used. To reset your password, return to the login page and select \"Reset Password\" to send a new email.", "backToLoginLinkText": "Back to login"}, "reset-password-email": {"emailDescription": "Please check ${email} for instructions to reset your password." }}'

The backToLoginLinkText key is defined and the button appears for the password reset + invalid (already used) link, but the button is missing from the Expired Link prompt:

How can I get the back to login button to appear for this prompt?

Hi @samantha

Welcome to the Auth0 Community :slight_smile:

It sounds like you’re using the Universal Login New Experience, I think the button is missing here because you may not have configured a default login route either at application or tenant level see here on how to set that https://auth0.com/docs/authenticate/login/auth0-universal-login/configure-default-login-routes

The weird thing is that if that was the case then I would expect the button to be missing on the other prompts as well still please confirm you have a default login route set.

Regards

1 Like

Hi @SaqibHussain ,
We’ve checked our settings and have both the “Tenant Login URI” and “Application Login URI” set with a login url. The button is appearing on the other prompts, but still missing for the Link Expired prompt

Thanks for your help,
Samantha

I do have the same issue. Adding a default login url does not solve the problem for me. There are two cases of the Link Expired prompt. One is when the url lifetime is expired, in this case the button does show as expected. The other is when the link is expired when a newer link is created, in that case the button does not show.

Hi @erik.vorstenbosch
Thanks for highlighting the use case here, I was able to replicate the issue as a result.

After checking internally this is expected behaviour. We delete all older tickets of the same type (password reset in this case) for a specific user when a new ticket is created therefore we don’t have any information about tenant / connection for the old ticket which means we cannot display the “Back to xxx” button.

Does this help clarify the situation @samantha?

Warm regards.

1 Like

Thanks @SaqibHussain, that makes sense.
It would be nice if these situations could be differentiated, so that I could show a different description (notify the user that they might have received a newer link). But for now it is OK.

@SaqibHussain Is there any way in this screen that we can add an html link to the error description text? Right now, we have users getting stuck on this Link Expired screen with no recourse on where to go in order to get a new login

Hi @samantha apologies for he delay here, just returned from annual leave.

The text can be updated via a PUT to https://YOUR-DOMAIN/api/v2/prompts/reset-password/custom-text/en
Body:

{
    "reset-password-error": {
        "descriptionExpired": "Text updated"
    }
}

However this will be plain text so you cannot add any links via anchor tags etc.

Please submit some feedback here to get this changed https://auth0.com/feedback

Warm regards

Hi,

we’re also facing the same issue.
would be great if we could define somewhere a “back to login” button - even if it’s different for this specific use-case…

right now the UX of this page is broken. it’s leading customers to a ‘dead-end’ page where they have to look for a link or direction elsewhere ----> bad UX.

1 Like

Hi @gal.arbel

I re-tested this out and it now seems to work as expected.

I ensured I had a default login route on my application Auth0 as below:

I executed the curl below to create a password reset ticket with a really short expiry:

curl -L 'https://<domain>/api/v2/tickets/password-change' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
-d '{"user_id":"auth0|64932462f803daac3db8a681","client_id":"cAuvPOjPgWqtL0tcZZo4cfiqUSxoNFUy","ttl_sec":3,"mark_email_as_verified":false,"includeEmailInRedirect":true}'

I waited the 3 seconds and tested with the results below:

As you can see the “Back to login” button does show. Are you able to re-test given my tests above and let me know how you get on.

Warm regards.

Hello @SaqibHussain .
I’m also facing the same issue.
The Back to login is missing.
I already have the Application Login URI.
Currently reset-password-success displays the Back to login CTA.
But for reset-password-error no Back to login CTA.

Im using universal login.

Is there anything else that needs to be applied for it make the CTA appear?

Hi @SaqibHussain Can you help me with it? It doesn’t seem to be working for me.