首页 > 编程语言 >python jwt token使用

python jwt token使用

时间:2023-04-24 12:45:03浏览次数:48  
标签:python key1 jwt token HS256 print payload

官网 https://pyjwt.readthedocs.io/en/latest/index.html
# 官网 https://pyjwt.readthedocs.io/en/latest/index.html
# 我们在jwt.encode函数中使用了三个参数:
# 1)第一个是payload,主要用来存放有效的信息,例如用户名,过期时间等想要传递的信息。payload字典内部官方指定有指定key,
#    如exp用来指定token的生命周期。更多指定key参数可参考这里;
# 2)第二个key,一个秘钥字串,这个秘钥主要用在下文Signature签名中,服务端用来校验Token合法性,这个秘钥仅服务端知道,不能泄露。
# 3)第三个参数指定Signature签名所用的算法。
import time

import jwt
from datetime import datetime, timedelta

key1 = "123456"
key2 = "12345"

payload = {
    'exp': datetime.now() + timedelta(seconds=2),  # 令牌过期时间,本地时间
    'username': 'BigFish'  # 想要传递的信息,如用户名ID
}

print("期望结果:", payload)

e1 = jwt.encode(payload, key1, algorithm='HS256')
print(e1)
d1 = jwt.decode(e1, key1, algorithms='HS256')
print("解析的结果中exp是时间戳:", d1)
# 转换后发现时间和期望结果相差8个小时,如果要验证token有效期,需要减去8个小时的时间戳28800
if d1.get("exp") - 28800 > time.time():
    print("token在有效期内")
else:
    print("token已过期")

# e2 = jwt.encode(payload, key2, algorithm='HS256')
# print(e2)
# # 直接报错,签名验证失败,不能用key2秘钥加密后用key1去解析
# d2 = jwt.decode(e2, key1, algorithms='HS256')
# print(d2)

 

标签:python,key1,jwt,token,HS256,print,payload
From: https://www.cnblogs.com/whitewall/p/17349065.html

相关文章

  • python stata 交互
    pythonfromsfiimportDatafromsfiimportDatetimefromsfiimportFramefromsfiimportMacrofromsfiimportValueLabelcca="北京"ac=cca.split('')foriiinac:Macro.setLocal('x',ii)enddisp"`x'"py......
  • 详解Python当中的pip常用命令
    相信对于大多数熟悉Python的人来说,一定都听说并且使用过pip这个工具,但是对它的了解可能还不一定是非常的透彻,今天小编就来为大家介绍10个使用pip的小技巧,相信对大家以后管理和使用Python当中的标准库会有帮助。安装当然在Python3.4版本之后以及Python2.7.9版本之后,官网的安装......
  • python jupyter notebook使用
    安装:pipinstalljupyter 配置文件生成目录:jupyternotebook--generate-config ,生成默认配置文件到C:\Users\Administrator\.jupyter\jupyter_notebook_config.py运行:打开cmd命令提示符窗口输入jupyternotebook回车,然后浏览器就会打开Jupyternotebook。......
  • python+uiautomator2+atx 环境搭建小白教程
    python版本(PC):3.7+ 安装方法见:Python3环境搭建|菜鸟教程(runoob.com)安装AndroidPlatformTools:安装地址: https://developer.android.com/studio/releases/platform-tools.html,解压,并加包含adb.exe的目录加入到系统的PATH中。控制面板->系统->高级系统设置->环境变量(D:......
  • UUID与Python线程同步方式
    UUID是如何保证唯一性高可靠,32位16进制数,32*4=128位二进制数,UUID4重复概率1/(2^128),加上时间戳应该好点,UUID1好点。UUIDVersion1:基于时间的UUID时间戳、随机数和机器MAC地址得到。常用UUIDVersion2:DCE安全的UUIDUUID1的时间戳前4位置换为POSIX的UID或GIDUUIDVersion3:......
  • Mac M1芯片无法安装Python3.7的conda环境
    用conda安装python3.7的环境,出现错误(base)➜CodeAnalysisgit:(main)✗condacreate-nCodeAnalysis3.7python=3.7Collectingpackagemetadata(current_repodata.json):doneSolvingenvironment:failedwithrepodatafromcurrent_repodata.json,willretrywit......
  • Python 实时生成曲线的两种方法-Matplotlib/Pyqtgraph
    前言Matplotlib更倾向于制作出版质量的图形,对matlab程序员来说更直观。pyqtgraph不像matplotlib那样完整/成熟,但运行速度要快得多,而且pyqtgraph旨在用于数据采集和分析应用程序,对于python/qt程序员来说更直观。Matplotlib(据我所知)不包括许多pyqtgraph的功能,例如图像......
  • Python环境安装与配置
    Python进行安装:https://www.python.org/如下是针对Windows的下载方式 下载后进行安装,选择自己的安装路径环境配置:script的目录和Python目录添加到path里面 输入python-V 安装配置成功......
  • [oeasy]python0137_相加运算_python之禅_import_this_显式转化
    变量类型相加运算回忆上次内容上次讲了是从键盘输入变量input函数可以有提示字符串需要有具体的变量接收输入的字符串 输入单个变量没有问题但是输入两个变量之后一相加就非常离谱 ​ 添加图片注释,不超过140字(可选)......
  • OpenAI的子词标记化神器--tiktoken 以及 .NET 支持库SharpToken
    经过Tokenize之后,一串文本就变成了一串整数组成的向量。OpenAI的 Tiktoken 是更高级的Tokenizer,编码效率更高、支持更大的词汇表、计算性能也更高。OpenAI在其官方GitHub上公开了一个开源Python库:tiktoken,这个库主要是用力做字节编码对的。字节编码对(BytePairEncoder......