密码重置涉及到复杂的安全性设计,我们直接使用一个第三方应用来做密码重置的功能。首先安装django-password-reset
pip install django-password-reset
安装完成后,将password_reset增加为INSTALLED_APPS中的一项
INSTALLED_APPS=[
#....
'password_reset',
]
接下来为这个重置密码的应用设置URL,即编辑url.py文件
urlpatterns = [
#...,
path('pwd_reset/',include("password_reset.urls")),
]
接着我们找到找个django-reset模块的目录,把模块内templates内的模板和内容完全复制到我们项目的目录中。
上面的工作做好了就可以运行Django服务了。
浏览器中输入127.0.0.1:8000/pwd_reset/recover
就可以看到页面了
这个应用的优势在于,它允许用户输入用户名或者邮箱,都可以向该用户的邮箱发送重置密码的邮件。
当然,要想以上功能正常运行,是需要先配置好邮箱服务器的。
以我自己的QQ邮箱为例,在settings.py中加入如下代码
EMAIL_HOST='smtp.qq.com'
EMAIL_USE_SSL=True
EMAIL_HOST_USER='邮箱地址'
EMAIL_HOST_PASSWORD='邮箱授权码'
EMAIL_PORT=465
EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'
DEFAULT_FROM_EMAIL=EMAIL_HOST_USER
邮箱开通SMTP的方法可以百度一下,有很多,不在赘述