我正在为Flask网络应用添加密码重置功能。</ p>
重置密码后,我想注销使用该用户名登录的所有人。我知道Flask-Login提供的logout_user()
方法。在我的应用程序中,密码重置是在用户未登录时完成的 - 使用电子邮件确认。它基本上是#34;忘记我的密码&#34;功能。我正在寻找logout_user(specific_user)
之类的东西。或者一种使特定用户cookie无效的方法?这些方面的东西。
我想这样做是因为目前如果用户凭据被盗并且他们重置了密码,那么拥有被盗凭据的人仍然会登录并可以访问该网络应用。
答案 0 :(得分:1)
您应该存储密码重置的时间戳,并将其与用户cookie进行比较。如果在生成cookie后重置密码,则要求用户再次提供登录名/密码。
Flask-Login cookie默认情况下不包含时间戳,因此您必须稍微调整一下。
可能值得在Flask-Login的GitHub上发布一个问题,因为它似乎是一个标准的用例。
编辑:实际上有更好的方法,请参阅https://flask-login.readthedocs.org/en/latest/#alternative-tokens。这是关于使用用户密码哈希(以及其他东西)签署“记住我”cookie。这样,如果密码更改,cookie实际上是未经验证的。