python实现token签名认证
当你注册了一个网站,通常,网站会向你的邮箱里发一封激活邮件,邮件里会有一个url,只有当你点击这个url,才能激活你的用户身份。
如何完成身份确认呢?通常,邮箱里的那个url里会有一个token,这个token是所有问题的关键,当你点击url,网站后台会受到这个请求,得到这个token,网站必须通过这个token找到你是谁。使用 itsdangerous 模块,可以轻松的生成临时身份令牌,也就是token。
1.pyhon3.x中安装itsdangerous 模块:
pip install itsdangerous
import time
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
SECRET_KEY = 'owiernw365ertwet' # 设置token的SECRET_KEY
# 生成token
def create_token():
s = Serializer(SECRET_KEY, 3) # 设置token的过期时间是3秒钟
data = s.dumps({'user_id': 343,'user_name':'admin123'}) # token携带了user_id和user_name这2个重要信息
token = data.decode()
print('生成的Token是: ',token)
return token
# 解析token
# 解析token的时候也要使用SECRET_KEY,生成的token有效期是3秒,这里在解析前sleep 2秒钟,如果改为4秒钟,那么由于token已经过期,解析就会失败
def jx_token(token):
time.sleep(2)
serializer = Serializer(SECRET_KEY)
try:
data = serializer.loads(token)
print('Token解析后是: ',data)
except:
print("Token解析失败,Token已经过期了")
if __name__ == '__main__':
tokens = create_token()
jx_token(tokens)