有人可以引导我了解Flask-Security的密码重置 token 中发生的情况吗?代码在github上:
https://github.com/mattupstate/flask-security/blob/develop/flask_security/recoverable.py
(目录中可能还有其他部分。)
我对正在发生的事情的理解:
那是对的吗?
还:
我对generate_password_reset函数特别困惑
data = [str(user.id), md5(user.password)] return _security.reset_serializer.dumps(data)
和
get_token_status(token, 'reset', 'RESET_PASSWORD')
内部的reset_password_token_status(token)
函数 最佳答案
它使用itsdangerous
模块来序列化 token 。如果您在下面阅读有关此内容的更多信息,则将获得有关如何使用到期时间戳等的答案。
http://packages.python.org/itsdangerous/
函数serializer.dumps()
创建一个唯一的序列化字符串,并且serializer.loads()
调用的get_token_status
将返回异常,除非将确切的序列化值作为参数提供给它。
因此,您使用dumps()
,然后使用该返回值调用loads()
。如果不匹配,则您有异常(exception),在这种情况下,这意味着错误的 token 。
关于python - Flask-Security中基于 token 的密码重置功能的说明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13906490/