What the person is doing
The user has forgotten the password, lost access to the authenticator, reached a failed-login route, or received a security prompt to reset a compromised password.
Application · lesson 11 of 23 · Task And Workflow Patterns
Underlying principle: A workflow joins actions across time, people, and systems. Each step gives the person enough context to continue, review, pause, or recover.
Treat password reset as a recovery-token lifecycle: collect an identifier with neutral response, deliver a single-use expiring reset link or code through an enrolled channel, validate the reset session, hand off to secure new-password creation, clean up sessions and tokens, and notify the account after completion.
A workflow joins actions across time, people, and systems. Each step gives the person enough context to continue, review, pause, or recover.
The user has forgotten the password, lost access to the authenticator, reached a failed-login route, or received a security prompt to reset a compromised password.
Treat password reset as a recovery-token lifecycle: collect an identifier with neutral response, deliver a single-use expiring reset link or code through an enrolled channel, validate the reset session, hand off to secure new-password creation, clean up sessions and tokens, and notify the account after completion.
Request state with identifier input, neutral copy, rate-limit protection, and a route back to sign in.
Does any request, delivery, resend, support, timing, error, status code, redirect, or notification path reveal account existence?
Submitting an identifier always leads to the same visible confirmation, regardless of whether an account exists.
The user has forgotten the password, lost access to the authenticator, reached a failed-login route, or received a security prompt to reset a compromised password.
Open the working example, try its controls, and compare the behavior against the decision guidance.
The user has forgotten the password, lost access to the authenticator, reached a failed-login route, or received a security prompt to reset a compromised password.
Treat password reset as a recovery-token lifecycle: collect an identifier with neutral response, deliver a single-use expiring reset link or code through an enrolled channel, validate the reset session, hand off to secure new-password creation, clean up sessions and tokens, and notify the account after completion.
Request state with identifier input, neutral copy, rate-limit protection, and a route back to sign in.
Account enumeration through reset request copy, timing, status codes, resend behavior, or support routes.
Use a clear page heading such as Reset your password and avoid relying on placeholder text for the account identifier.
OWASP Cheat Sheet Series - checked
OWASP supports neutral reset responses, delivery by email or other side channel, single-use expiring tokens, rate limiting, no automatic login, optional session invalidation, and notifications.
OWASP Web Security Testing Guide - checked
OWASP WSTG supports testing HTTPS reset links, token reuse, expiry, predictability, account binding, and invalidation behavior.
GOV.UK Design System - checked
GOV.UK supports reset links or codes, no reset questions, no password reminders, and no emailed passwords.
OWASP Cheat Sheet Series - checked
OWASP supports neutral authentication and recovery responses that avoid account enumeration.
MDN Web Docs - checked
MDN supports autocomplete new-password semantics for the replacement password step and one-time-code semantics for short reset codes.
National Institute of Standards and Technology - checked
NIST supports blocklist checks, password-manager and paste support, protected channels, hashing, and avoiding unsupported password rules during new-password setup.
Source trail checked: