Python全系列 教程
3567个小节阅读:5929.7k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
修改/bz_edu_project/settings.py
,增加jwt密码,与过期时间
xxxxxxxxxx
41# 设置Jwt的秘钥
2JWT_SECRET_KEY = '123456789'
3# 设置JWT过期时间,单位:秒
4JWT_EXPIRE = 10
修改user_app\utils.py
模块,修改秘钥方式、增加验证时间
xxxxxxxxxx
451import time
2
3import jwt
4
5from django.conf import settings
6
7def generate_token(data:dict):
8 # 增加要加密过期时间. 现在的时间+过期时长
9 data.update({'exp':settings.JWT_EXPIRE+time.time()})
10 # 通过加密算法生成token
11 # token = jwt.encode(data,'123456789',algorithm='HS256')
12 token = jwt.encode(data,settings.JWT_SECRET_KEY,algorithm='HS256')
13 # 返回token
14 return token
15
16def verify_token(token):
17 # 通过解密算法验证token
18 # data = jwt.decode(token,'123456789',algorithms=['HS256'])
19 try:
20 data = jwt.decode(token,settings.JWT_SECRET_KEY,algorithms=['HS256'])
21 except Exception as e:
22 return None
23 '''
24 # 以下的逻辑不需要我们手动实现, jwt已经帮我们实现了
25 # 获取token中的过期时间
26 exp_time = data.get('exp')
27 # 获取当前时间
28 now = time.time()
29 # 判断是否过期
30 if now > exp_time:
31 return None
32 '''
33 return data
34
35if __name__ == '__main__':
36 data = {'phone':'18600112345'}
37 t = generate_token(data)
38 print(f'生成token:{t}')
39 d = verify_token(t)
40
41 print(f'解密token:{d}')
42'''
43user的唯一标识 通过 加密算法 生成 token
44pip install pyjwt==2.8.0
45'''