我正在使用flask-login
库,但是我无法找到有关如何允许用户通过电子邮件重置其密码的好的教程或文档。在这方面,我可以查看哪些方向/资源?彻底的Google搜索没有找到任何有用的内容。
我正在使用flask-login
库,但是我无法找到有关如何允许用户通过电子邮件重置其密码的好的教程或文档。在这方面,我可以查看哪些方向/资源?彻底的Google搜索没有找到任何有用的内容。
基本逻辑:
电子邮件
字段的重置密码表单。输入/生成密码的逻辑可以是不同的:
flask-login
不负责处理重置密码邮件等其他相关事项,它只是用于管理会话和 cookies。Flask-Security
,它可以为 Flask 添加密码重置功能和其他常见的安全相关功能。Flask-Security 使用 flask-login 来处理会话,但在此基础上增加了其他功能以完善安全功能:
电子邮件确认
如果需要,您可以要求新用户确认其电子邮件地址。Flask-Security 将向任何新用户发送带有确认链接的电子邮件消息。在导航到确认链接后,用户将自动登录。还有一个视图可重新发送给定电子邮件的确认链接,如果用户尝试使用已过期的令牌或丢失了以前的邮件,则可以使用该视图。确认链接可以配置为在指定时间后过期。
密码重置 / 恢复
当用户忘记其密码时,可以使用密码重置和恢复功能。Flask-Security 向用户发送一封电子邮件,其中包含他们可以重置密码的链接视图。一旦密码重置,他们就会自动登录,并可以从那时起使用新密码。密码重置链接可以配置为在指定时间后过期。
用户注册
Flask-Security 随附了一个基本的用户注册视图。此视图非常简单,新用户只需要提供电子邮件地址和密码即可。如果您的注册过程需要更多字段,则可以覆盖此视图。
Flask-Login
仅为Flask提供用户会话管理。它处理登录、注销和记住您的用户会话等常见任务,但不包括重置密码、更改密码、电子邮件确认等。
Flask-security
是完成这些任务的最佳且易于使用的选项。它几乎可以处理所有事情,但它目前没有得到积极维护。
注意 该项目已不再得到维护。请考虑 Flask-Security-Too 作为替代方案。-- 来自flask-security Github repo
因此,我推荐使用 Flask-Security-Too
库,这是改进版本并得到积极维护。它还具有更多功能,例如2FA身份验证、统一登录等。
您可以使用pip进行安装。
pip install flask-security-too flask-sqlalchemy
并导入像
from flask-security import current_user, login_required
在Flask-Security repo的examples directory目录中有一些完整(但简单)的示例可用。
文档:https://flask-security-too.readthedocs.io/en/stable/index.html