I am using the inbuilt password reset functionality of Django which emails the user the password reset link. Is there an option in Django to set an expiration time to the link suppose 6 hours after which the link become invalid and user will have to request again for password recovery.
Asked
Active
Viewed 2.0k times
2 Answers
37
If you're using Django's built-in password reset functionality, you can use the setting PASSWORD_RESET_TIMEOUT_DAYS
.
Example: if a user uses a password reset link that was generated 2 days ago and you have PASSWORD_RESET_TIMEOUT_DAYS=1
in your project's settings, the link will be invalid and the user cannot continue.
More info here: https://docs.djangoproject.com/en/3.2/ref/settings/#password-reset-timeout-days

Ed Patrick Tan
- 727
- 1
- 9
- 15
18
Django includes functionality to expire the token in less than 1 day in Django 3.1 or newer. Use the setting PASSWORD_RESET_TIMEOUT
which takes number of seconds after which token will expire.
PASSWORD_RESET_TIMEOUT = 259200 # 3 days, in seconds
Documentation: https://docs.djangoproject.com/en/stable/ref/settings/#password-reset-timeout

Flimm
- 136,138
- 45
- 251
- 267

Shivam Shahi
- 356
- 2
- 6
-
Actually, by default, it expires after [3 days](https://docs.djangoproject.com/en/3.2/ref/settings/#password-reset-timeout) – sajeyks mwangi Sep 11 '22 at 17:36