标签:过期 用户名 安装 col ebs 中间 ict 信息 Nid
在做QQ第三方登录时,用户跳转到QQ登录界面登录成功后,会在URL返回一个code参数。前端把code发送给后端。后端收到后,会查询出openid。然后判断openid是否存在,如果存在就可以绑定用户或新建用户。如果不存在,进把openid返回给前端。前端填完注册信息后,把openid、手机号码、用户名、密码等参数再发送给后端处理。
这时候,openid因为先传回去给前端,再传回来给后端。所以中间涉及了安全问题。万一别人篡改了openid呢?所以需要对openid进行加密!这时候就用到了ltsdangerous模块。
(1)安装
pip install itsdangerous
(2)使用
TimedJSONWebSignatureSerializer 可以生成带有效期的加密数据
格式:
TimedJSONWebSignatureSerializer([秘钥], [有效期秒])
- 签名(加密): dumps(dict) 返回bytes类型数据
- 验签(解密): loads(str) 返回字典- 可以确保数据没有被篡改
- 数据会过期
- 解密出错异常
- BadData 父类
- SignatureExpired: 签名过期
- BadSignature: 要解密的数据被篡改
示例:
加密
a = TimedJSONWebSignatureSerializer("h8329hrjkewhf89sdy*()&",60*60) # b是加密后的字符串 b = a.dumps({"key":"我是不能暴露的信息"}).decode()
解密
# c是字典 c = a.loads(b) # 如果签名过期,抛异常SignatureExpired # 如果数据被篡改过,抛异常BadSignature
标签:过期 用户名 安装 col ebs 中间 ict 信息 Nid
原文地址:https://www.cnblogs.com/chichung/p/9977086.html