爲什麼Django REST Framework實現與內置Django機制不同的身份驗證機制?爲什麼Django REST Framework提供了不同的身份驗證機制
要機智,有一個可配置兩個設置類:
settings.AUTHENTICATION_BACKENDS
它處理的Django級認證,並settings.REST_FRAMEWORK['DEFAULT_AUTHENTICATION_CLASSES']
,其驗證的REST框架水平
我遇到的問題是我有一箇中間件層檢查用戶是否登錄。
當使用通過會話進行身份驗證的網絡客戶端時,這可以正常工作。但是,從移動設備或運行測試套件(即使用HTTP標頭和令牌進行身份驗證)時,中間件會將用戶檢測爲AnonymousUser
,但當我們到達REST Framework層時,會讀取HTTP Authorization
標頭,用戶已登錄。
爲什麼這些不是在中間件之前發生的?此外,爲什麼REST Framework的身份驗證方法不依賴於Django身份驗證後端?
很好的問題@BillyBBone。我遇到了同樣的問題。你有沒有想過在中間件中驗證DRF請求的方法? –