在web开发中,带有时效的token运用非常多,itsdangerous生成token是比较简洁好用的一种。
一切的加密和加密都交给itsdangerous来做,只需要像用黑盒一样使用即可。
例如:不想让客户端知道数据库中的id,而且产生的token具有时效性。
1.导入
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
2.加密信息
s = Serializer("加密安全码", 1000)
s.dumps({'id':'12345'}).decode('utf-8')
加密安全码越复杂越安全。dumps中为需要加密的信息,这里存id。1000为有效时间,单为秒。
3.解密
s = Serializer(current_app.config['SECRET_KEY'])
try:
data = s.loads(token.encode('utf-8'))
except Exception as e:
print(e)
else:
print(data.get('id')) #12345
取出id后用于数据库中校验之类的工作。
检验时间是否有效,交给了itsdangerous 去做。