临时django rest framework权限范围内的令牌
drf-tmp-scoped-token的Python项目详细描述
rest_framework_tmp_scoped_token提供django rest 生成和验证签名的框架兼容系统 授权令牌。生成的令牌包含其上的用户的ID 代表令牌持有者进行身份验证,http动词和 承载者被允许访问的API端点,最大寿命为 令牌,以及关于预期收件人的便条。
用法
代币
要生成令牌,请使用 rest_framework_tmp_scoped_token.TokenManager类。代币 包含以下信息:
user:将通过令牌进行身份验证的用户。
endpoints:key:http方法和端点根的值对 该令牌被授权访问。以下值将 授权令牌向任何开始的终结点发出get请求 使用api/v1/foo:
{'GET':['/api/v1/foo']}
^ {STR 1 } $Note :此令牌将不会覆盖任何现有权限 对于系统中的关联用户。它只会进一步增加 对可以访问的终结点的限制。
max_age:令牌有效的时间(秒)。由 默认情况下,令牌有效期为1小时非过期令牌不是 支持。
收件人:(可选)收件人的文本描述 为了这个代币。没有对此进行验证 数据,但是它作为 X-API-Token-Recipient头由附带的drf 身份验证方案。这是为了跟踪目的
note:令牌通过django的签名 `signing<;https://docs.djangoproject.com/en/dev/topics/signing/>;。`_ 设施必须知道标记未加密, 他们只是签了名。因此,您不应该包括任何 令牌中的敏感/机密信息。例如,请注意 查看签名字符串的内容很简单:
In[1]:fromdjango.coreimportsigningIn[2]:t=signing.dumps({'something-secret':'hope nobody sees this'})In[3]:print(t)eyJzb21ldGhpbmctc2VjcmV0IjoiaG9wZSBub2JvZHkgc2VlcyB0aGlzIn0:1d47N6:woJG0EgLNDb0OjYQmCbsjniP-2YIn[4]:importbase64In[5]:print(base64.urlsafe_b64decode(t.encode('utf8')))b'{"something-secret":"hope nobody sees this"}5w\x8e\xcd\xeb\n\t\x1bA ,\xd0\xdb\xd0\xe8\xd8B`\x9b\xb29\xe2?\xed\x98'
贡献
测试
pip install -r requirements-test.txt ./runtests
部署
pip install -r requirements-deploy.txt
python setup.py test clean build tag publish