Knoxth使用Knox令牌为DRF视图集提供令牌级别的授权管理
项目描述
Knoxth - Auth for Knox
Knoxth是一个基于DRF和Knox构建的django授权模块。
简介
Knoxth使用Knox令牌为DRF视图集提供令牌级别的授权管理。
Django Rest Framework是一个简单易用的框架,用于在Django中编写REST API。使用Knox,您可以使用访问令牌来保护您的API。然而,Knox留下了一个空缺,即在Knox之上构建上下文特定认证系统的需求。
用户将想要自定义他们创建的每个令牌的“范围”。这样,用户可以为不同的用例创建不同的令牌。
让我们举一个例子。假设您正在开发一个允许创建和管理TODO列表的REST API。现在,您有一个处理所有CRUD操作的观点集,但您希望提供一种方法,让用户可以以令牌级别管理对他们的TODO列表的访问。因此,用户可以创建一个只能读取TODO列表但不能修改它们的令牌。
这就是knockth发挥作用的地方。knockth使用Knox令牌在令牌级别实现DRF视图集的上下文授权。
安装
使用pip安装Knox。
1. 安装knoxth
pip install knoxth
对于pipenv项目,也可以这样安装:
pipenv install knoxth
安装knoxth后,您需要设置knoxth以便与现有的项目一起使用。在设置knoxth之前,请确保您已安装并准备好rest_framework和knox。
2. 添加到INSTALLED_APPS
将rest_framework
、knox
和knoxth
添加到您的INSTALLED_APPS
中,如果您在设置knox时删除了它,请添加rest_framework.authtoken
。
INSTALLED_APPS = (
...
'rest_framework',
'rest_framework.authtoken',
'knox',
'knoxth',
...
)
3. 设置默认认证类
将knox的TokenAuthentication设置为django-rest-framework的默认认证类。
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': ('knox.auth.TokenAuthentication',),
...
}
4. 包含knoxth URLS
Knoxth提供了一个带有其四个默认视图路由的url配置。
这可以轻松地包含在您的url配置中
urlpatterns = [
#...snip...
url(r'api/auth/', include('knoxth.urls'))
#...snip...
]
注意 重要:请使用字符串语法,而不是尝试导入knoxth.urls
,因为对User
模型的引用会导致在导入时应用程序失败。
视图可以通过以下方式访问:
端点 | 描述 |
---|---|
/api/auth/authorize |
授权用户名和密码。返回授权码。 |
/api/auth/login |
接受授权码并返回访问令牌。 |
/api/auth/logout |
注销用户并删除访问令牌和授权码。 |
/api/auth/logoutall |
与注销相同,但会注销所有正在运行的会话。 |
它们也可以按名称查找
reverse('knoxth_login')
reverse('knoxth_logout')
reverse('knoxth_logoutall')
reverse('knoxth_authorize')
5. 迁移
应用模型迁移
python manage.py migrate
如何使用
许可协议
GNU GPL V3
GitHub @ayys · Twitter @habuayush
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。
源分布
构建分布
knoxth-0.0.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e45b5b90dc52c7f5f91bb04cbcf3cda5e8f578e0bedf85d8d21d17918fcf175d |
|
MD5 | 3bade1b4f8720ed71bcce4ba8b58d2b4 |
|
BLAKE2b-256 | 981f399bd6a039f87fc79faf1ec548443f7768b36404a2b6227d14aea5ad1f71 |
knoxth-0.0.3-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9c2269b637ffe25365bba447b77e863e3652f70ae0d795d5a8967ca6c945bc2d |
|
MD5 | 7aafb7b1e2a51121a80b430b7f2d969a |
|
BLAKE2b-256 | ab494992ff84b45569371695d9111f36c95ec964d426683a2e13e03b5c370716 |