Django中web開發使用模塊itdangerous的實用

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
>>>     
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章