跳转到主要内容

Python中的JSON Web Token实现

项目描述

Python实现[JSON Web Token草案01](http://self-issued.info/docs/draft-jones-json-web-token-01.html).

这是Mozilla对[PyJWT](http://pypi.python.org/pypi/PyJWT)的分支,增加了RSA算法,修复了一些时序攻击,并做了一些其他调整。它在[webpay](https://github.com/mozilla/webpay)等项目中使用。

安装

使用[pip](http://www.pip-installer.org/)或类似工具安装模块

pip install PyJWT-mozilla

此安装步骤还会安装/编译 [M2Crypto](http://pypi.python.org/pypi/M2Crypto),因此您需要 swig。您可以使用包管理器获取它,例如

brew install swig

或者您可能可以使用类似以下命令找到 M2Crypto 的二进制包

sudo apt-get install python-m2crypto

用法

import jwt jwt.encode({"some": "payload"}, "secret")

请注意,生成的 JWT 不会加密,但可以使用密钥进行验证。

jwt.decode("someJWTstring", "secret")

如果密钥错误,将引发一个 jwt.DecodeError,告诉您错误信息。您仍然可以通过将 verify 参数设置为 false 来获取负载。

jwt.decode("someJWTstring", verify=False)

算法

JWT 规范支持多种加密签名算法。此库目前支持

  • HS256 - 使用 SHA-256 哈希算法的 HMAC(默认)

  • HS384 - 使用 SHA-384 哈希算法的 HMAC

  • HS512 - 使用 SHA-512 哈希算法的 HMAC

  • RS256 - 使用 SHA-256 哈希算法的 RSA

  • RS384 - 使用 SHA-384 哈希算法的 RSA

  • RS512 - 使用 SHA-584 哈希算法的 RSA

通过在 encode 中设置算法来更改算法

jwt.encode({"some": "payload"}, "secret", "HS512")

测试

通过在根目录下输入此命令将项目安装到 [virtualenv](http://pypi.python.org/pypi/virtualenv)(或其他位置)

python setup.py develop

按此方式运行测试

python tests/test_jwt.py

许可

MIT

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

PyJWT-mozilla-0.1.5.tar.gz (5.4 kB 查看散列)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面