1

我正在向 Flask Web 应用程序添加密码重置功能。

重置密码后,我想注销使用该用户名登录的任何人。我知道logout_user()Flask-Login 提供的方法。在我的应用程序中,密码重置是在用户未登录时完成的 - 使用电子邮件确认。它基本上是“忘记我的密码”功能。我正在寻找类似的东西logout_user(specific_user)。还是一种使特定用户 cookie 无效的方法?沿着这些思路。

我想这样做是因为目前如果用户凭据被盗并且他们重​​置了密码,则具有被盗凭据的人仍然登录并且可以访问网络应用程序。

4

1 回答 1

1

您可能应该存储密码重置的时间戳并将其与用户 cookie 进行比较。如果在生成 cookie 后密码已重置,您要求用户再次提供登录名/密码。

Flask-Login cookie 默认不包含时间戳,因此您必须稍微调整一下。

可能值得在 Flask-Login 的 GitHub 上发布一个问题,因为它似乎是一个标准用例。

编辑:实际上有更好的方法可以做到这一点,请参阅https://flask-login.readthedocs.org/en/latest/#alternative-tokens。这是关于使用用户密码哈希(除其他外)来签署“记住我”cookie。这样,如果密码更改,cookie 实际上是未经验证的。

于 2014-07-08T10:01:02.493 回答