import jwt
import datetime
import time
from jwt.exceptions import ExpiredSignatureError
# 全局密钥
secret = 'xxx'
# 生成token
def encode_func():
user = {'id': 1, 'name': 'admin', 'age': 23}
encoded = jwt.encode(user, secret, algorithm='HS256')
print('encoded->', encoded)
return encoded
# 解析token
def decode_func(token):
decode = jwt.decode(token, secret, algorithms=['HS256'])
print('decode->', decode)
# 生成一个含有过期时间的token,注意使用的是UTC时间
def encode_exp_func():
user = {'id': 1, 'name': 'admin', 'age': 23}
exp = datetime.datetime.utcnow() + datetime.timedelta(seconds=2)
jwt_payload = jwt.encode({
'exp': exp,
'user': user
}, secret)
print('jwt_payload->', jwt_payload)
return jwt_payload
# 解析一个含有过期时间的token
def decode_exp_func(token):
try:
decode = jwt.decode(token, secret, algorithms=['HS256'])
print('exp->', time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(decode.get('exp'))))
except ExpiredSignatureError as e:
print('token过期了', e)
if __name__ == '__main__':
print('生成token,解析token', '-'*50)
encoded = encode_func()
decode_func(encoded)
print('exp token', '-'*50)
token = encode_exp_func()
time.sleep(3)
decode_exp_func(token=token)
pyjwt使用
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 目录 | TABLE OF CONTENT [TOC] 注意:为了避免专有名词翻译带来的混淆,直接使用专有名词原语...
- 这几年的工作,从工控转到到嵌入式软件开发,再到目前的上位软件开发,虽然工作形式发生了变化,但实质都是在做各种各样的...