python jwt-用于生成和验证JSON Web令牌的python模块 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 版本的情形下, 令牌也是以字符串的样式进行返回。