您当前的位置:首页 > 计算机 > 编程开发 > Python

python自带jwt库使用

时间:03-29来源:作者:点击数:
import jwt
import time

#加密
jwt.encode({payload},key,algorithm)
#key:自定义的字节串或字符串
#payload:具体内容自己添加,分为公有声明和私有声明,字典类型
#algorithm:使用的哈希算法
#返回值为字节串
#示例:
key = xxx
exp = yyy
now_time = time.time()
token = jwt.encode({'username':'Terry','exp':int(now_time+exp)},key,algorithm='HS256')


#解密
jwt.decode(token,key,algorithm)
e.g. jwt.decode(token,TOKEN_KEY,algorithms='HS256')

#校验内容
1. 比对从token中取出的key对应的值,和各种请求中传来的值
2. 查看时间是否过期
如果不对,解密时报错

django 从token中取出用户名并从数据库中取出该用户对象

def get_user_id(request):
	#取token
	token = request.META.get('HTTP_AUTHORIZATION')
	#若没取出token,则用户未登录
	if not token:
		return None
	
	#若token不对,返回一个none
	try:
		res = jwt.decode(token,TOKEN_KEY,algorithms='HS256')
	except Exception as e:
		return None
	
	#如果没报错,拿出username
	username = res['username']
	#从数据库中取出用户对象
	users = UserProfile.objects.filter(username=username)
	if not users:
		return None

	user = users[0]
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门