在开发过程中会遇到一些需要用户激活使用的链接,这些需要带有用户的相关信息,又不希望这些信息以明文的方式展现给用户,防止不放分子从中作恶,这时就可以使用itsdangerous来对数据进行加密,之后再对加密的数据进行解密得到用户信息,从而对该用户进行激活认证
具体在开发过程中的使用:
加密时
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
发送激活邮件,包含激活链接 user/active/1
激活链接中需要包含用户的身份信息,并且把身份信息进行加密
加密用户身份信息,生成激活token
Serializer的第一个参数是用户加密的密钥,第二个参数是生成的加密数据的有效时间秒(s)
这是使用django中自带的SECRET_KEY作为密钥既保证的关联性,又提供了安全性(复杂)
serializer = Serializer(settings.SECRET_KEY,3600)
将所需加密的参数以字典数据生成
info = {'confirm': user.id}
将数据进行加密
token = serializer.dumps(info)
token = token.decode()
解密时
serializer = Serializer(settings.SECRET_KEY, 3600)
解密
info = serializer.loads(token)
获取待激活用户的唯一参数数据
user_id = info['confirm']