簡體   English   中英

如何使用Django REST API驗證android用戶POST請求?

[英]How to authenticate android user POST request with Django REST API?

到目前為止,我已經有了Django REST API,並且對於Web應用程序來說一切都是虛假的,其中我已經在后端實現了User Auth。 “ login_required”條件非常適合基於Cookie的Web應用。

我現在有一個Android應用程序,需要訪問相同的API。 我可以登錄用戶。 我需要知道的是如何在每個用戶向我的視圖發出GET / POST請求時對每個用戶進行身份驗證?

我的研究顯示了幾種解決方案:1)Cookie支持的會話2)隨每個GET / POST請求發送用戶名和密碼(可能不安全)

有任何想法嗎?

聽起來您正在使用Django REST框架,在這種情況下TokenAuthentication可能是合適的。 從文檔:

此身份驗證方案使用簡單的基於令牌的HTTP身份驗證方案。 令牌認證適用於客戶端-服務器設置,例如本地台式機和移動客戶端

您不需要預先生成令牌,因為客戶端可以使用您在urls.py中配置的內置視圖obtain_auth_token來請求一個令牌。

客戶端獲得會話的令牌后,便可以使用Authorization: HTTP標頭在后續的API調用中提供令牌。

查看文檔以獲取更多信息: http : //www.django-rest-framework.org/api-guide/authentication/#tokenauthentication

HTTP基本身份驗證(BA)實施是對Web資源實施訪問控制的最簡單技術,因為它不需要Cookie,會話標識符和登錄頁面。 相反,HTTP Basic身份驗證使用靜態的標准HTTP標頭,這意味着無需進行任何握手

要閱讀更多內容並了解在服務器和客戶端上要實現的目標,請閱讀以下內容:

http://en.wikipedia.org/wiki/Basic_access_authentication

我使用了不同的REST Java框架,所有這些框架都提供了用於添加基本身份驗證標頭添加和檢索的簡單API。

對於Django,以下是一些有用的代碼段:

http://djangosnippets.org/snippets/243/

您可能要使用Django Sessions中間件,它將使用django session_id設置cookie。 在以下請求上,會話中間件將在您的請求對象上設置一個名為user的屬性,然后您可以測試用戶是否已通過request.user.is_authenticated()(或login_required裝飾器)進行身份驗證。 另外,您可以將會話超時設置為您喜歡的設置。

在默認的Django設置中啟用了此中間件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM