什么是JWT?
JWT(JSON WEB
TOKEN):JSON网络令牌,JWT是一个轻便的安全跨平台传输格式,定义了一个紧凑的自包含的方式在不同实体之间安全传输信息(JSON格式)。它是在Web环境下两个实体之间传输数据的一项标准。实际上传输的就是一个字符串。广义上讲JWT是一个标准的名称;狭义上JWT指的就是用来传递的那个token字符串
JWT用来做什么?怎么来的?
由于http协议是无状态的,所以客户端每次访问都是新的请求。这样每次请求都需要验证身份,传统方式是用session+cookie来记录/传输用户信息,而JWT就是更安全方便的方式。它的特点就是简洁,紧凑和自包含,而且不占空间,传输速度快,而且有利于多端分离,接口的交互等等
JWT是一种Token规范,主要面向的还是登录、验证和授权方向,当然也可以用只来传递信息。一般都是存在header里,也可以存在cookie里。
# 导包
import jwt
import datetime
# 声明载荷
playload = {'exp':int((datetime.datetime.now() + datetime.timedelta(seconds=20)).timestamp()),'data':
{'uid':31}}
# print(playload)
#加密 第一个参数:用户敏感信息 ,第二个参数:密钥 ,第三个参数:加密算法 ,hs256
encode_jwt = jwt.encode(playload,'123',algorithm='HS256')
# print(encode_jwt)
# 转码
encode_str = str(encode_jwt,'utf-8')
print(encode_str)
# 解码 第一个参数:转码后的字符串 ,第二个参数:密钥 ,第三个参数:加密算法 ,hs256
de_code = jwt.decode('eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NzUzNTI4OTcsImRhdGEiOnsidWlkIjozMX19.kpVH_23B-N1j2AA0NzieAjCb1-1uvT50AN954BJGQK8','123',algorithms=['HS256'])
print(de_code)