2025年3月27日 星期四 甲辰(龙)年 月廿六 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

python自带jwt库使用

时间:03-29来源:作者:点击数:40
  • 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]
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门