PyJwt

pyjwt

pyjwt是一个Python库,可用于编码和解码JSON Web令牌

安装

pip install pyjwt

用法示例

>>> import jwt
>>> encoded_jwt = jwt.encode({"some": "payload","exp": datetime.datetime.utcnow() + datetime.timedelta(seconds=30)}, "secret", algorithm="HS256")
>>> print(encoded_jwt)
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21lIjoicGF5bG9hZCJ9.Joh1R2dYzkRvDkqv3sygm5YyK8Gi4ShZqbhK2gxcs2U
>>> jwt.decode(encoded_jwt, "secret", algorithms=["HS256"])
{'some': 'payload'}

使用范例

使用HS256编码和解码令牌

>>> import jwt
>>> key = "secret"
>>> encoded = jwt.encode({"some": "payload"}, key, algorithm="HS256")
>>> print(encoded)
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzb21lIjoicGF5bG9hZCJ9.4twFt5NiznN84AWoo1d7KO1T_yoc0Z6XOpOVswacPZg
>>> jwt.decode(encoded, key, algorithms="HS256")
{'some': 'payload'}

API

jwt.encode(payload, key, algorithm="HS256", headers=None, json_encoder=None)

Parameters:

payload(dict) – JWT claims, e.g. dict(exp=…, iss=…, aud=…, sub=…)

key(str) - 适用于所选算法的密钥:

​ 对于非对称算法 : PEM格式的私钥,多行字符串

​ 对于对称算法 : 普通字符串,足够长以保证安全性

algorithm(str) – algorithm to sign the token with, e.g. “ES256”

headers (dict) – 附加JWT报头字段, 例如: dict(kid=“my-key-id”)

json_encoder(json.JSONEncoder) – 有效payload和headers的定制JSON编码器

jwt.decode(jwt, key="", algorithms=None, options=None, audience=None, issuer=None, leeway=0)

Parameters:

​ jwt(str) - 要解码的令牌

​ key(str) - 适用于允许算法的密钥

algorithms (str) - 允许的算法,例如[“ES256”]

​ option(dict) - 扩展解码和验证选项:

​ require_exp=False 检查exp(到期)声明是否存在

​ require_iat=False 检查iat(发行)声明是否存在

​ require_nbf=False 检查nbf(不是之前)声明是否存在

​ verify_aud=False 检查aud(受众)声明是否与受众匹配

​ verify_iat=False 检查iat(发出于)索赔值是否为整数

​ verify_exp=False 检查exp(到期)索赔值是否正常

​ verify_iss=False 检查iss(发行者)声明是否与发行者匹配

​ verify_signature=True 验证JWT加密签名

​ audience (Iterable) – 可选,verify_aud检查的值

​ issuer (str) – 可选,verify_iss检查的值

​ leeway (float) – 到期检查的时间间隔(秒)

​ Return type : dict

​ Returns : the JWT claims

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值