python中封装token问题
作者:xiaodong_blogs 发布时间:2022-09-29 01:09:32
标签:python,封装,token
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


猜你喜欢
- 本来想穷举所有密码,算法要么就嵌套太深,要么就特别耗内存(会溢出).后来选了一个简单重复概率很低的算法.代码如下:# -*- coding:
- 一旦你已经为MySQL实例管理器设置了一个密码文件并且IM正在运行,你可以连接它。你可以使用mysql客户端工具通过标准MySQL API来
- 在人工智能开启的时代,Python作为人工智能的首选语言,前景可以预见。因此学习Python的人越来越多。不过,很多初学Python的小白都
- ConfigParser模块在Python3修改为configparser,这个模块定义了一个ConfigeParser类,该类的作用是让配
- 要查看当前是否已开启事件调度器 SHOW VARIABLES LIKE 'event_scheduler'; 开启事件查看器
- 本文实例为大家分享了html5 canvas在图片上画超链接的具体代码,供大家参考,具体内容如下1. html<canvas id=&
- 本文实例讲述了Python学习笔记之字符串和字符串方法。分享给大家供大家参考,具体如下:字符串在 python 中,字符串的变量类型显示为
- 介绍今天有个不正经的需求,就是要快速做一个restful api的性能测试,要求测试在海量作业数据的情况下客户端分页获取所有作业的性能。因为
- 在 python 代码中可以看到一些常见的 trick,在这里做一个简单的小结。json 字符串格式化在开发 web 应用的时候经常会用到
- 前言说起这个事情吧也相对来说比较尴尬,对于一个技术来说忘记密码然后找回密码都是相当简单的一个事情,但是在生产环境中没有保存记录只能是自己的失
- 我们先从一个常见的Python编程错误开始说起,我已经见过非常多的程序员犯过这种错误了:def do_not_raise(user_defi
- 前言sched是Python的内置模块,用于事件调度,可在安全的在多线程环境中轻松实现定时任务。sched是一种调度(延时处理机制)。sch
- 本文实例为大家分享了JDBC建立数据库连接的具体代码,供大家参考,具体内容如下import java.sql.DriverManager;i
- 最近经常需要出一些临时性的报表,于是就用python 的smtplib 和email 两模块写了个小程序,当数据处理完后通过邮箱把报表文件从
- VS Code 装好ESLint 插件报黄线的问题,具体解决方法如下所示:ESLint is disabled since its exec
- 在程序实际应用中,少不了要进行字符串拼接的操作。下面介绍一下Python语言中四种字符串拼接的方式。1. 算术运算符拼接在Python中算术
- 技术选型公司现在需要开发移动端的h5,使用现在比较流行的vue 2.0开发,使用的脚手架是Vant2,网络访问使用的是axios,路由跳转使
- 本文将介绍如何使用公司运行服务器进行开发调试,以及使用远程服务器python解释器,整理了对应的配置流程。进入配置页面Pycharm菜单栏,
- time 模块time 模块,也就是时间模块,用来进行一些与时间有关的操作。其使用方法为:import timeprint(time.tim
- 什么是浅克隆、深克隆浅克隆:直接将存储在栈中的值赋值给对应变量,如果是基本数据类型,则直接赋值对应的值,如果是引用类型,则赋值的是地址。深克