我正在使用flask-login
库,而且我还没有找到关于如何允许用户通过电子邮件重置密码的任何好的教程或文档。我可以看到哪些方向/资源如何做到这一点?彻底的谷歌搜索并没有发现任何有用的东西。
答案 0 :(得分:20)
flask-login
不会处理重置密码电子邮件和其他类似的事情。它就在那里管理会话和cookie。
您应该使用Flask-Security
添加密码重置功能和其他常见的安全相关功能。 Flask-Security使用flask-login来处理会话,但在顶部添加了其他功能以完善安全功能:
电子邮件确认
如果需要,您可以要求新用户确认其电子邮件地址。 Flask-Security将向任何新用户发送电子邮件 确认链接。在导航到确认链接时,用户 将自动登录。还有重新发送的视图 如果用户碰巧尝试使用,则确认链接到给定的电子邮件 过期的令牌或丢失了以前的电子邮件。确认链接 可以配置为在指定的时间后过期。
密码重置/恢复
当用户忘记密码时,密码重置和恢复可用 或她的密码。 Flask-Security通过链接向用户发送电子邮件 他们可以重置密码的视图。一旦密码是 重置它们会自动登录并可以使用新密码 从那时起。密码重置链接可以配置为在a之后过期 指定的时间。
用户注册
Flask-Security随附基本用户注册视图。 此视图非常简单,新用户只需提供电子邮件 地址和密码。如果你的话,这个观点可以被覆盖[原文如此] 注册过程需要更多的领域。
答案 1 :(得分:15)
基础逻辑:
email
字段创建重置密码表单。输入/生成密码的逻辑可能不同:
答案 2 :(得分:0)
Flask-Login
仅提供Flask的用户会话管理。它处理登录,注销和记住用户会话的常见任务。但不能重设密码,更改密码,电子邮件确认等。
Flask-security
是执行这些操作的最佳和简便方法。它几乎可以处理所有事情。但没有积极维护。
注意 该项目不再维护。考虑一下 Flask-Security-Too项目作为替代。 -来自flask-security Github回购
因此,我推荐Flask-Security-Too
库,该库是改进版本并正在积极维护。它还具有更多功能,例如2FA身份验证,统一登录等
您可以使用pip进行安装
pip install flask-security-too flask-sqlalchemy
并导入库,例如
from flask-security import current_user, login_required
examples directory的Flask-Security repo中有一些完整(但简单)的示例。
文档:https://flask-security-too.readthedocs.io/en/stable/index.html