JWT令牌和Zope组件架构(ZCA)的包装器。
项目描述
此库帮助您使用Zope组件架构(ZCA)与JWT令牌。
此包与Python 2.7、3.6到3.8版本的Python兼容。
版权所有(C)2015-2020 gocept gmbh & co kg
保留所有权利。
本软件受Zope公共许可证第2.1版(ZPL)的条款约束。应随本分发提供ZPL副本。本软件“按原样”提供,并放弃所有明示或暗示的保证,包括但不限于标题保证、适销性保证、侵权保证以及特定用途适用性保证。
安装
此包需要cryptography,需要一些安装注意。请参阅其安装文档以获取更多信息。
用法
CryptographicKey 工具
gocept.webtoken 使用类gocept.webtoken.CryptographicKeys的全局工具,为不同目的提供加密密钥。它从磁盘加载一组公钥和私钥。它接受密钥文件的文件系统路径和密钥名称列表
>>> import gocept.webtoken >>> import pkg_resources >>> path_to_keys = pkg_resources.resource_filename( ... 'gocept.webtoken', 'testing/keys') >>> keys = gocept.webtoken.CryptographicKeys( ... path_to_keys, ['key1'])
对于每个名称,必须在keys_dir内部存在具有相同名称的私钥文件和一个公钥文件(具有.pub后缀)。
该实用程序需要在ZCA中进行注册,无论是通过zcml文件还是通过
>>> import zope.component >>> zope.component.provideUtility(keys)
创建令牌
使用create_web_token 函数创建带有签名的Web令牌。您需要注册在CryptographycKey实用程序中的私钥名称。它通过其名称和后缀-private进行引用
>>> expires_in = 300 # The token is valid for 300 seconds >>> payload = {'your': 'data'} >>> result = gocept.webtoken.create_web_token( ... 'key1-private', 'issuer', 'subject', expires_in, payload) >>> sorted(result.keys()) ['data', 'token']
令牌位于token键下,而令牌中编码的数据位于data键下。
解码令牌
使用decode_web_token 函数解码带有签名的Web令牌。您需要注册在CryptographycKey实用程序中的公钥名称。它通过其名称和后缀-public进行引用
>>> result = gocept.webtoken.decode_web_token( ... result['token'], 'key1-public', 'subject')
请注意,主题必须与创建令牌时给出的主题匹配。
结果包含令牌中编码的所有数据。您可以在data键下找到有效载荷。
>>> {'your': 'data'} == result['data'] True
gocept.webtoken
4.0 (2023-08-21)
停止支持Python 2.7,3.5,3.6。
添加对Python 3.9,3.10,3.11的支持。
3.1.post1 (2020-04-08)
从setup.py中删除错误的python_requires。
3.1 (2020-04-08)
迁移到Github。
使用Python 3.8和PyPy3进行测试。
停止使用Python 3.5进行测试。
3.0 (2018-11-14)
将许可证从ZPL更改为MIT。
添加对Python 3.7的支持。
停止支持Python 3.4。
将主题检查改为可选,因为某些系统(如Keycloak)使用随机的uuid作为主题,而解码器不知道该主题。
添加必需的audience参数,用于解码由Keycloak生成的令牌。
2.0 (2018-01-08)
停止支持Python 3.3,但添加对3.6的支持。
通过不再使用绝对路径,使setup.py与较新的setuptools版本兼容。
1.2.1 (2015-10-08)
修复extract_token以接受任何从collections.Mapping派生的对象。
1.2 (2015-10-08)
添加了创建Bearer授权头和从中提取令牌的辅助函数。
正式支持Python 3.5。
1.1 (2015-10-01)
缩短了CryptographicKeys、create_web_token和decode_web_token的导入,现在可以直接从gocept.webtoken导入。
添加了文档。
1.0 (2015-10-01)
支持Python 3.3和3.4。
初始版本,从内部使用的包中提取。
项目详情
gocept.webtoken-4.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 626588ecd486c28584a85dcf2532844c4529d11f691bfe3f49e04c5d25e348b0 |
|
MD5 | e79403dc8cf4fcb80ea205dbc05d7be6 |
|
BLAKE2b-256 | 0e31bf6fd33b8ae53676a60f7d59a332be9642c5f772e6e5ae9c9e8741a63454 |
gocept.webtoken-4.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a5347e2700a3ff85534ba4feb820379650c501a85106b84ee5f3a77dd8cb149f |
|
MD5 | f3a71aa7eb453561d56d1e4e3cb2c047 |
|
BLAKE2b-256 | 1eb8e69b24a4d060fe55d6813607d7cf2fd580c4516a4080b1e1d352a189f364 |