python中封裝token問題
更新時(shí)間:2022年12月20日 16:50:24 作者:xiaodong_blogs
這篇文章主要介紹了python中封裝token問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
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
# 時(shí)常加密
# userinfo :用戶信息
# mytime: 設(shè)置過期時(shí)間
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,直接調(diào)用
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的錯(cuò)誤", 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錯(cuò)誤", e)
return False
#單獨(dú)文件測試
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))總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Django如何實(shí)現(xiàn)密碼錯(cuò)誤報(bào)錯(cuò)提醒
這篇文章主要介紹了Django如何實(shí)現(xiàn)密碼錯(cuò)誤報(bào)錯(cuò)提醒,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值2020-09-09
django框架面向?qū)ο驩RM模型繼承用法實(shí)例分析
這篇文章主要介紹了django框架面向?qū)ο驩RM模型繼承用法,結(jié)合實(shí)例形式分析了Django框架ORM模型抽象類繼承、多表繼承及代理模型繼承三種繼承方式實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-07-07
python sqlalchemy動(dòng)態(tài)修改tablename兩種實(shí)現(xiàn)方式
這篇文章主要介紹了python sqlalchemy動(dòng)態(tài)修改tablename兩種實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-03-03
Python+PyQT5的子線程更新UI界面的實(shí)例
今天小編就為大家分享一篇Python+PyQT5的子線程更新UI界面的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06
用Python中的字典來處理索引統(tǒng)計(jì)的方法
這篇文章主要介紹了用Python中的字典來處理索引統(tǒng)計(jì)的方法,字典的使用是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),本文則是相關(guān)的一個(gè)小實(shí)踐,需要的朋友可以參考下2015-05-05
python 矢量數(shù)據(jù)轉(zhuǎn)柵格數(shù)據(jù)代碼實(shí)例
這篇文章主要介紹了python 矢量數(shù)據(jù)轉(zhuǎn)柵格數(shù)據(jù)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09

