【问题标题】:How to add token authentication to REST API created with Django REST framework如何将令牌身份验证添加到使用 Django REST 框架创建的 REST API
【发布时间】:2014-01-31 02:41:21
【问题描述】:

我不太明白这是如何工作的,但我想向我的 REST API 客户端添加令牌身份验证或 API 密钥身份验证。我该如何解决这个问题,就像我希望 API 客户端在连接到 API 时拥有 API 密钥一样,这是否应该基于用户,其中 API 的每个人类用户都有一个 API 密钥,

【问题讨论】:

  • 你试过在令牌认证上阅读 DRF official docs 吗?
  • 对于任何想要从外部访问您的 API 的人来说,答案是肯定的。对于使用您自己的软件并在内部访问您的数据的任何人,他们不需要拥有 API 密钥。

标签: django rest api-key


【解决方案1】:

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 并在下面添加以下内容,为您的用户添加“挂钩”/“事件”

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)
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-16
    • 2015-12-19
    • 1970-01-01
    • 2014-04-14
    • 2018-12-15
    • 1970-01-01
    • 2021-07-06
    • 2015-06-21
    相关资源
    最近更新 更多