资讯动态

python jwt-用于生成和验证JSON Web令牌的python模块

发布时间:2026/8/10 8:18:54 来源:尧图企业网站定制
JSON Web令牌, 也就是JWT, 是一种方法, 它紧凑, 且URL安全, 用于表示声明, 这些声明要在两方间转移。JWT里的声明被编码成JSON对象, 此对象用作JSON Web签名, 即JWS结构的有效负载, 或者用作JSON Web加密, 也就是JWE结构的纯文本, 这就让声明能够数字签名, 或者进行完整性保护, 借助消息验证码, 也就是MAC, 并且, 还能对带有消息验证码也就是MAC和或加密的消息加以处理。该备忘录的状态这是一个标准跟踪文档。这份文档是工程任务组即IETF所产出的物品, 它体现着IETF群体的一致看法, 它历经了公众的审视, 并且已经被工程指导小组也就是IESG核准予以发布, 关于标准的更多讯息, 可去查看RFC 5741的第2节。您若想了解有关JWT更为详细的说明, 那么可以查看这个如下的文档, 此文档的路径为: /docs/draft - ietf - oauth - json - web - token.html。示例importpython_jwt as jwt, jwcrypto.jwk as jwk, datetime key jwk.JWK.generate(ktyRSA, size2048) payload {foo:bar,wup: 90}; token jwt.generate_jwt(payload, key,PS256, datetime.timedelta(minutes5)) header, claims jwt.verify_jwt(token, key, [PS256])forkinpayload:assertclaims[k] payload[k]您可以在PEM格式的字符串之间读写密钥importpython_jwt as jwt, jwcrypto.jwk as jwk, datetime key jwk.JWK.generate(ktyRSA, size2048) priv_pem key.export_to_pem(private_keyTrue, passwordNone) pub_pemkey.export_to_pem() payload {foo:bar,wup: 90}; priv_keyjwk.JWK.from_pem(priv_pem) pub_keyjwk.JWK.from_pem(pub_pem) token jwt.generate_jwt(payload, priv_key,RS256, datetime.timedelta(minutes5)) header, claims jwt.verify_jwt(token, pub_key, [RS256])forkinpayload:assertclaims[k] payload[k]使用模块在这里可以下载-jwt源文件模块放入到项目中引入即可。注意, 从2.0.1版本起始, 命名空间已然从更改至jwt转变为, 目的在于防止与PyJWT产生冲突。请注意, 1.0.0版本以及比它更高的版本, 对JSON Web令牌验证里存在的漏洞予以了修复, 所以, 要是您正在运用此项功能, 那就需要进行升级, API出现变更, 于是您得更新您的应用程序, 目前要求您指明允许的签名算法。支持RS256算法, 支持RS384算法, 支持RS512算法, 支持PS256算法, 支持PS384算法, 支持PS512算法, 支持HS256算法, 支持HS384算法, 支持HS512算法, 支持ES256算法, 支持ES384算法, 支持ES512算法, 支持EdDSA算法, 支持无签名算法。单元测试包括与jose的互操作性测试。对 2、7 予以支持, 同时支持 3.6 及以上版本。需要留意的是, 哪怕是在 2.7 版本的情形下, 令牌也是以字符串的样式进行返回。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价