临时Django REST Framework权限范围令牌
项目描述
rest_framework_tmp_scoped_token提供了一款与Django REST Framework兼容的系统,用于生成和验证签名授权令牌。生成的令牌包含代表令牌持有者进行认证的用户ID、允许访问的HTTP动词和API端点的白名单、令牌的最大有效期以及关于预期接收者的备注。
用法
令牌
要生成令牌,请使用rest_framework_tmp_scoped_token.TokenManager类。令牌包含以下信息
user:将被令牌认证的用户。
endpoints:令牌授权访问的HTTP方法和端点根的键值对。以下值将授权令牌对以“api/v1/foo”开头的任何端点进行GET请求。
{'GET': ['/api/v1/foo']}
注意:此令牌不会覆盖系统内关联用户的所有现有权限。它仅对可以访问的端点添加额外的限制。
max_age:令牌有效的秒数。默认情况下,令牌将有效期为1小时。不支持非过期令牌。
接收者: (可选) 对于此令牌的接收者提供的文本描述。对此数据不进行验证,但由伴随的DRF认证方案将其作为X-API-Token-Recipient头信息附加到请求中。这是为了跟踪目的。
注意:令牌通过Django的`signing` <https://docs.django.ac.cn/en/dev/topics/signing/>功能进行签名。重要的是要知道令牌未加密,只是进行了签名。因此,您不应在令牌中包含任何敏感/机密信息。例如,注意查看签名字符串内容是多么容易。
In [1]: from django.core import signing
In [2]: t = signing.dumps({'something-secret': 'hope nobody sees this'})
In [3]: print(t)
eyJzb21ldGhpbmctc2VjcmV0IjoiaG9wZSBub2JvZHkgc2VlcyB0aGlzIn0:1d47N6:woJG0EgLNDb0OjYQmCbsjniP-2Y
In [4]: import base64
In [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
项目详情
关闭
drf-tmp-scoped-token-0.2.1.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 173f9bde36928d71d41d007345e29c9d3c10feafd36e58411a056faafeb97a76 |
|
MD5 | 904348910f8c0ad6abbf7b25bb30c064 |
|
BLAKE2b-256 | b2862a03971a7b0393e014f84d26e286624e0fa7fb06ab51f9e0f7b644e2607d |
关闭
drf_tmp_scoped_token-0.2.1-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | b8b38ad127fee4844f097575d68e20a121dce7cd87176ba14dcc097a595d8ddc |
|
MD5 | bfd6045f8d1b9fcf8f96f4f4d2d5741f |
|
BLAKE2b-256 | f08f03de9b6fa34f2451bd46c66c5902ee069853f7eaee466cdffa96a7334615 |