用于管理签名认证令牌的通用库。
项目描述
这是一个基于令牌的认证的通用支持库。您可以使用它来构建使用携带令牌、双端OAuth或MAC访问认证的登录系统。
给定服务器端的密钥,您可以序列化数据字典到一个不透明、不可伪造的认证令牌
>>> token = tokenlib.make_token({"userid": 42}, secret="I_LIKE_UNICORNS") >>> print token eyJzYWx0IjogImY0NTU5NCIsICJleHBpcmVzIjogMTMyOTg3NTI2Ny4xNDQ5MzUsICJ1c2VyaWQiOiA0Mn0miXCe4NQQtXTE8NXSGcsL6dzSuQ==
稍后,您可以使用相同的密钥验证令牌并提取嵌入的数据
>>> data = tokenlib.parse_token(token, secret="I_LIKE_UNICORNS") >>> print data {u'userid': 42, u'expires': 1329875384.073159, u'salt': u'1c033f'}
请注意,数据包括过期时间。如果您尝试解析过期令牌,它将失败
>>> # Use now=XXX to simulate a time in the future. >>> tokenlib.parse_token(token, secret="I_LIKE_UNICORNS", now=9999999999) Traceback (most recent call last): ... ValueError: token has expired
同样,如果令牌是用不匹配的密钥构造的,它也会失败
>>> tokenlib.parse_token(token, secret="I_HATE_UNICORNS") Traceback (most recent call last): ... ValueError: token has invalid signature
每个令牌还有一个相关的“令牌密钥”。这是一个可以与令牌的消费者共享的秘密密钥,用于启用如MAC访问认证和双端OAuth等认证方案
>>> key = tokenlib.get_token_secret(token, secret="I_LIKE_UNICORNS") >>> print key EZslG8yEYTGyDvBjRnxGipL5Kd8=
对于反复使用相同设置的程序,您可能希望创建一个TokenManager对象,而不是使用模块级别的便捷函数
>>> manager = tokenlib.TokenManager(secret="I_LIKE_UNICORNS") >>> data = manager.parse_token(token) >>> print data {u'userid': 42, u'expires': 1329875384.073159, u'salt': u'1c033f'}
这将允许您自定义例如令牌过期超时或哈希模块,而不必在每次调用中重复设置。
2.0.0 - 2017-12-20
兼容Py27, Py35
0.3.1 - 2014-01-08
将tokenlib.DEFAULT_HASHMOD改为字符串。
修复了偶尔失败的测试。
0.3.0 - 2014-01-08
澄清了许可信息
改为使用sha256作为默认哈希算法
将get_token_secret重命名为get_derived_secret以明确其目的;旧名称仍然保留,但已弃用。
添加了自定义ValueError子类以实现更精细的错误报告。
0.2.0 - 2012-11-27
通过源级兼容性支持python3
0.1.0 - 2012-03-14
初始版本。
关闭
tokenlib-2.0.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 569f27a117b0e0e6476946c96572741a33449c607835a3c6f3fdac85f93b3408 |
|
MD5 | 936440e920922122f928d8a36b3863ff |
|
BLAKE2b-256 | 6617147b29c8fe58e84df567b5120d72a15a760369b6d80349c1d6317e9ed30c |
关闭
tokenlib-2.0.0-py2.py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1c6de2c06edf54954df535e5bd1cbb6d7821be032102f40e5a8a53acd5b03649 |
|
MD5 | 43c5257af597a500c9f442a5d1361b6a |
|
BLAKE2b-256 | f6d0dd970f811a64391355a387f0ba2a129f135c841b5ffb7d2d30a03ba6b4eb |