Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make failed logins less brutal to improve UX #762

Open
jimdigriz opened this issue Jun 1, 2023 · 1 comment
Open

make failed logins less brutal to improve UX #762

jimdigriz opened this issue Jun 1, 2023 · 1 comment

Comments

@jimdigriz
Copy link
Contributor

On a failed login, the Portier broker deletes the session preventing further attempts to log in with that session. It would be helpful to be able to configure the broker to instead only delete the session on a successful login; as well as the after a deadline has expired as it already does.

From our experience, the current behaviour hurts the UX as we see regularly people failing to log in for legitimate and expected reasons but (we assume) very few attempts to brute for the code; which for most is moot and prevented by any CSRF protection (ie. a cookie) in the resource provider.

This is described in #670 (comment) and followed up by #670 (comment)

Common reasons for a failed login:

  1. different browsing context; resource provider is open in one browser (or incognito window) but when opening the link in the email it pops open another browser (or non-incognito)
  2. login code is mistyped of pasted incorrectly

This problem is potentially exasperated by the rate limiter as our users get at least confused and then re-attempt fresh logins which also fail as they are still incorrectly doing something or other.

@jimdigriz
Copy link
Contributor Author

jimdigriz commented Aug 19, 2023

It may be worth also exploring (maybe behind an option if it feels icky) if a given email address is trying to log into the same client_id and there currently is an outstanding session for that, to just resend the same code to the user; if say there is at least a few minutes left on the clock or maybe if it was within N minutes of the original one having being sent.

I am able to sponsor this work if necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant