Page MenuHomePhabricator

Add method for user to request a password reset
Closed, ResolvedPublic

Description

Add a new screen that allows a user to request a password reset in the event of lost password/username.

The screen will allow an unauthenticated user to enter an email address that they believe is associated with an account. The response to submitting this form will always be a screen telling the user that an email has been sent to the provided email address with instructions for account recovery. There will be no indication of whether or not the email address submitted is associated with an account.

The application will create a one-time use token and store it in the database. That token will be associated with the user account associated with the provided email address.

The email sent to the user will provide the username associated with the email address and a URL containing the one-time use reset token. Visiting this URL will check that the token is unused/unexpired. If it is then the user will be allowed to enter a new password for the account. If the token is invalid then the user will be allowed to request a new token.

Event Timeline

bd808 claimed this task.
bd808 raised the priority of this task from to High.
bd808 updated the task description. (Show Details)
bd808 subscribed.

Wisdom from our security team:

Token should be about 128 random bits, either hex or b64 encoded. Ideally, save a hash of the token you send to the user in the database, so a DB compromise doens't let you compromise current reset tokens.

Change 247858 had a related patch set uploaded (by BryanDavis):
Add support for self-service password resets

https://gerrit.wikimedia.org/r/247858

Change 247858 merged by jenkins-bot:
Add support for self-service password resets

https://gerrit.wikimedia.org/r/247858

Changes have been deployed to https://iegreview.wikimedia.org/ and verified there.