跳转到主要内容

Knoxth使用Knox令牌为DRF视图集提供令牌级别的授权管理

项目描述



Knoxth - Auth for Knox

Knoxth是一个基于DRFKnox构建的django授权模块。

pipeline status GitHub coverage report

简介安装如何使用文档许可协议

简介

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_frameworkknoxknoxth添加到您的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 (27.0 kB 查看哈希值)

上传时间

构建分布

knoxth-0.0.3-py3-none-any.whl (30.4 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

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