[英]Django REST Framework TokenAuthentication to authenticate in Django generally
我們正在使用rest_framework.authentication.TokenAuthentication
使用訪問令牌對 Django REST 框架中的 API 用戶進行身份驗證。
有沒有辦法使用同一個類來驗證 Django 的用戶?
我已經嘗試將它直接添加到AUTHENTICATION_BACKENDS
但它不起作用:
AUTHENTICATION_BACKENDS = (
# Needed to login by username in Django admin, regardless of `allauth`
"django.contrib.auth.backends.ModelBackend",
# `allauth` specific authentication methods, such as login by e-mail
"allauth.account.auth_backends.AuthenticationBackend",
'rest_framework.authentication.TokenAuthentication',
)
有沒有一種快速的方法可以做到這一點,或者我是否需要編寫自定義身份驗證后端?
Django REST framework 身份驗證和權限類需要使用 Django REST framework 視圖,因為身份驗證是在視圖級別完成的[1] 。 這與 Django 身份驗證后端不同,后者通過中間件完成身份驗證。
有沒有辦法使用同一個類來驗證 Django 的用戶?
不,Django REST framework 身份驗證后端與 Django 身份驗證后端明顯分開,技術上正好相反[2] 。
[1]:已經討論過將其移至中間件級別,但目前還沒有計划。
[2]:Django 身份驗證后端可以通過SessionAuthentication
和其他類似的 DRF 后端使用。
您可以使用SessionAuthentication 。
AUTHENTICATION_BACKENDS = (
# Use Django's session framework for authentication.
'rest_framework.authentication.SessionAuthentication',
....
'rest_framework.authentication.TokenAuthentication',
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.