Start here. This is the direct spoken answer to practice first.
Why this question matters
Password reset is a sensitive auth workflow because it can become account takeover if token handling or enumeration protection is weak.
A password-reset request always returns a generic response so it does not reveal whether an account exists. The server creates a high-entropy token, stores only its hash in a one-time record with an expiration, and emails the raw token to the user. On submission it hashes the presented token, verifies and consumes the record atomically, updates the password hash, and invalidates relevant sessions according to policy.