def _decode_reset_otk(self, otk):
reset_signer = itsdangerous.URLSafeTimedSerializer(
self.config.reset_secret, 'password-recovery')
try:
# we allow 6 hours
name, pwfrag = reset_signer.loads(otk, max_age=6*60*60)
except itsdangerous.BadData:
return None
user = self.store.get_user(name)
if pwfrag == user['password'][-4:]:
return user
return None
评论列表
文章目录