2014-01-12 43 views
3

我真的不明白這是如何工作的,但我想向我的REST API客戶端添加令牌認證或API密鑰認證。我該如何解決這個問題,就像我希望API客戶端在連接到API時擁有API密鑰一樣,如果這是基於用戶的API的每個人類用戶都有一個API密鑰,如何將令牌認證添加到使用Django REST框架創建的REST API

+1

你有沒有嘗試閱讀DRF [官方文檔(http://www.django-rest-framework.org/api-guide/authentication#tokenauthentication)在令牌身份驗證? – mariodev

+0

對於任何想從外部訪問您的API的人來說,答案是肯定的。對於任何人使用自己的軟件並在內部訪問您的數據,那麼他們不需要有一個API密鑰。 – Joe

+0

查看http://stackoverflow.com/questions/17560228/how-to-use-tokenauthentication-for-api-in-django-rest-framework –

回答

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

雖然這個鏈接可能回答這個問題,但最好包含必要的部分的答案,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – FallenAngel

+1

好點,我更新了答案 – PvdL

相關問題