python中封装token问题
作者:xiaodong_blogs 时间:2022-09-29 01:09:32
python 封装token
import datetime
class MyJwt:
def __init__(self):
# 加密密钥
self.password = "1231231241234refd"
# 加密方法
def encode_jwt(self,userinfo):
# 加密操作
encode_srt = jwt.encode(userinfo,self.password,algorithm="HS256")
try:
encode_srt = str(encode_srt,"utf-8")
except Exception as e:
pass
return encode_srt
# 时常加密
# userinfo :用户信息
# mytime: 设置过期时间
def encode_jwt_t(self,userinfo,mytime):
playload = {
'exp': int((datetime.datetime.now()+datetime.timedelta(seconds=mytime)).timestamp()),
'data':userinfo
}
# 加密操作
encode_srt = jwt.encode(playload,self.password, algorithm="HS256")
try:
encode_srt = str(encode_srt, "utf-8")
except Exception as e:
pass
return encode_srt
# 解密
def decode_jwt(self,jwt_str):
return jwt.decode(jwt_str,self.password,algorithms=['HS256'])
如何封装token,直接调用
import jwt
import time
class JwtTool:
#生成token
def create_token(self, payload, ex):
a = "sss"
payload['ex'] = int(time.time()) + ex
try:
token = jwt.encode(payload, key=a)
print("生成token成功", token)
return token
except Exception as e:
print("生成token的错误", e)
return False
#解析token
def check_token(self, token):
try:
a = "sss"
payload = jwt.decode(token, key=a, algorithms="HS256")
print("解析token成功", payload)
return payload
except Exception as e:
print("解析token错误", e)
return False
#单独文件测试
if __name__ == '__main__':
from app import app
with app.app_context():
j = JwtTool()
payload = {
"ia": 1,
"name": "小米"
}
token = j.create_token(payload, 200)
print("-----", token)
# token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYSI6MSwibmFtZSI6Ilx1NWMwZlx1N2M3MyJ9.ru9-3H7Z9abbkKXkZMbekeAEdlE-COw9CASYMxIG728"
# print("++++",j.check_token(token))
来源:https://blog.csdn.net/weixin_55555564/article/details/121348404
标签:python,封装,token
0
投稿
猜你喜欢
Django admin组件的使用
2021-05-20 06:03:08
Django模型中字段属性choice使用说明
2022-06-23 16:28:20
10个简化PHP开发的工具
2023-07-14 18:02:05
思考关于搜索框的设计
2008-12-09 18:17:00
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
2021-10-23 19:00:50
详解MySQL数据库中Show命令的用法
2008-11-27 16:04:00
如何在事件代理中正确使用 focus 和 blur 事件
2010-01-30 12:51:00
Python文件和流(实例讲解)
2023-08-02 19:11:45
解决django model修改添加字段报错的问题
2021-06-18 12:06:38
python去掉字符串中重复字符的方法
2022-11-23 09:17:35
Python采集图片数据的实现示例
2023-03-06 05:53:17
详解vue-router2.0动态路由获取参数
2024-04-09 10:49:42
Python利用Beautiful Soup模块搜索内容详解
2023-10-24 15:53:43
浅谈python连续赋值可能引发的错误
2023-07-12 04:13:32
Python 文件数据读写的具体实现
2023-07-08 12:15:06
python+Matplotlib 绘制带置信区间的折线图
2022-04-29 06:23:40
Python常见数据类型转换操作示例
2022-11-20 19:13:05
Python详解argparse参数模块之命令行参数
2021-06-20 21:16:18
python可以用哪些数据库
2024-01-19 11:43:51
vue使用swiper实现中间大两边小的轮播图效果
2024-06-05 09:20:25