我不太明白这是如何工作的,但我想向我的 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/