django - 如何向使用 Django REST 框架创建的 REST API 添加 token 身份验证

标签 django rest api-key

我不太明白这是如何工作的,但我想向我的 REST API 客户端添加 token 身份验证或 API key 身份验证。我该怎么做,比如我希望 API 客户端在连接到 API 时拥有 API key ,这应该基于用户,API 的每个人类用户都有一个 API key ,

最佳答案

http://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication说明如何执行此操作,正如@kannor 指出的那样,请参阅 How to use TokenAuthentication for API in django-rest-framework

settings.py 中添加到已安装的应用程序中

INSTALLED_APPS = (
     ...
    'rest_framework.authtoken'
)

编辑您的 models.py 并在下面添加以下内容以添加“ Hook ”/“事件”以保存您的用户

from django.conf import settings
from django.db.models.signals import post_save
from django.dispatch import receiver
from rest_framework.authtoken.models import Token

@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
    if created:
        Token.objects.create(user=instance)

并将以下内容添加到您的 urls.py

from rest_framework.authtoken import views
urlpatterns += [
    url(r'^api-token-auth/', views.obtain_auth_token)
]

关于django - 如何向使用 Django REST 框架创建的 REST API 添加 token 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21072877/

相关文章:

django - 如何将 Django 中 Count() 的输出转换为 Django 1.8 中的 FloatField

python - 试图理解 Django 源代码和缺少参数 TypeError 的原因

c# - 无法使用本地部署的 ASP.NET REST API

django - AngularJS REST 应用程序 - 设计优化

Python 单元测试模拟 API key

python - 在 Windows 中的 python 3.7 上安装 django 时出现代理错误

python - django - 使用 get_or_create 自动创建用户时设置用户权限

rest - Logstash服务器可以从RestURL读取数据

reactjs - 如何在 React 应用程序中使用 openai 的 apikey 创建一个 .env?

asp.net-mvc - 我应该将 API key 放在哪里?