1、itdangerous配合邮箱激活账户的token加解密处理:
官方文档:
https://itsdangerous.readthedocs.io/en/1.1.x/
安装:
pip install -U itsdangerous
导入:
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
加密:
>>> from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
>>> Serializer('secretkey', 3600)
<itsdangerous.jws.TimedJSONWebSignatureSerializer object at 0x7f7aebd27630>
>>> serializer = Serializer('secretkey', 3600)
>>> info = {'confirm':1}
>>> res = serializer.dumps(info)
>>> res
b'eyJhbGciOiJIUzUxMiIsImlhdCI6MTU2NjI3NDU5MywiZXhwIjoxNTY2Mjc4MTkzfQ.eyJjb25maXJtIjoxfQ.ImKmvQ6VxShkvkbRzuP2czYatnFYyIneCq4yr1RG7IwBHj7NsEWIIIxugS0fy-iMHbFoWBdQuoMfgnQokj0H9w'
解密:
>>> serializer.loads(res)
{'confirm': 1}
超时:
>>> serializer = Serializer('secretkey', 5) # 5秒之后超时
>>> info = {'confirm':2}
>>> res = serializer.dumps(info)
>>> res
b'eyJhbGciOiJIUzUxMiIsImlhdCI6MTU2NjI3NDcxOSwiZXhwIjoxNTY2Mjc0NzI0fQ.eyJjb25maXJtIjoyfQ.2IXwXrhofnEv-K9WfyPY0x7RBkkfb4MOsyNVEfutWxuyzsAtLLuNG-gXSb2I5pWPJAXWevQucJ9ZcyA7OW7tRg'
>>> serializer.loads(res) # 超时解密报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/toohoo/PycharmProjects/mydailyfresh/venv/lib/python3.6/site-packages/itsdangerous/jws.py", line 205, in loads
date_signed=self.get_issue_date(header),
itsdangerous.exc.SignatureExpired: Signature expired
>>>