我有一個django項目,使用django-rest-framework創建api。如何在django-rest-framework中使用TokenAuthentication用於API
想要使用令牌基礎認證系統,所以API調用(put,post,delete)只會爲授權用戶執行。
我安裝了'rest_framework.authtoken'併爲每個用戶創建了令牌。
因此,現在從django.contrib.auth.backends進行身份驗證,它將返回用戶,並將auth_token作爲屬性。 (當成功登入時)。
現在我的問題是如何發送帶有POST請求的令牌給我的API和 在API端如何驗證令牌是否有效並屬於正確的用戶?
應用程序rest_framework.authtoken中是否有任何方法來驗證給定的用戶及其令牌? 找不到this非常有用!
更新的變化(我做了): 增加這在我的settings.py:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
)
}
而且發送令牌在我的頭,但它仍然沒有工作:
if new_form.is_valid:
payload= {"createNewUser":
{ "users": request.POST["newusers"],
"email": request.POST["newemail"]
}
}
headers = {'content-type' : 'application/json',
'Authorization': 'Token 6b929e47f278068fe6ac8235cda09707a3aa7ba1'}
r = requests.post('http://localhost:8000/api/v1.0/user_list',
data=json.dumps(payload),
headers=headers, verify=False)
基本上重複: http://stackoverflow.com/問題/ 14838128/django-rest-framework-token-authentication – jdero
不能說那篇文章只談論創建令牌 - 我完成了這部分,現在想知道如何通過http請求傳遞令牌以及如何驗證給定用戶及其令牌。沒有人會談論那部分。 – Peter
它在django-rest-framework文檔中有很好的文檔記錄。在客戶端,您只需向所有HTTP請求添加頭文件,並且django-rest-framework在服務器端執行其餘部分。如果提供了有效的標記,您將擁有正確的用戶作爲請求。用戶 – jasisz