有人可以告诉我在flask-security的密码重设令牌中发生的事情吗?代码在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)
函数
答案 0 :(得分:4)
正在使用itsdangerous
模块序列化令牌。如果您在下面详细了解它,您将获得有关如何使用到期时间戳的答案等。
http://packages.python.org/itsdangerous/
函数serializer.dumps()
创建一个唯一的序列化字符串,由serializer.loads()
调用的get_token_status
将返回异常,除非为其提供了确切的序列化值作为参数。
因此,您dumps()
然后使用其中的返回值,即可调用loads()
。如果不匹配,则您有异常,在这种情况下意味着令牌不良。