Python Django REST框架令牌身份验证通常在Django中进行身份验证

Python Django REST框架令牌身份验证通常在Django中进行身份验证,python,django,django-rest-framework,Python,Django,Django Rest Framework,我们正在使用rest\u framework.authentication.TokenAuthentication使用访问令牌对Django rest框架中的API用户进行身份验证 有没有一种方法可以使用这个类来验证Django用户的身份 我已经尝试将其直接添加到身份验证\u后端,但不起作用: AUTHENTICATION_BACKENDS = ( # Needed to login by username in Django admin, regardless of `allauth`

我们正在使用
rest\u framework.authentication.TokenAuthentication
使用访问令牌对Django rest框架中的API用户进行身份验证

有没有一种方法可以使用这个类来验证Django用户的身份

我已经尝试将其直接添加到
身份验证\u后端
,但不起作用:

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',
)
有没有一种快速的方法可以做到这一点,或者我需要编写一个自定义的身份验证后端?

您可以使用SessionAuthentication


Django REST framework身份验证和权限类需要使用Django REST framework视图,因为身份验证是在视图级别完成的[1]。这与Django身份验证后端不同,后者通过中间件完成身份验证

有没有一种方法可以使用这个类来验证Django用户的身份

不,Django REST framework身份验证后端与Django身份验证后端截然不同,技术上相反[2]

[1] :已经讨论过将其移动到中间件级别,但目前还没有计划。

[2] :Django身份验证后端可通过
SessionAuthentication
和其他类似的DRF后端使用。

SessionAuthentication
不允许用户使用Django Rest Framework令牌进行身份验证,是吗?刚刚测试过,Django仍然认为用户未经身份验证…会话身份验证后您是否保留了TokenAuthentication?我有-我正在使用
AUTHENTICATION\u BACKENDS=((“Django.contrib.auth.BACKENDS.modelbend”,“allauth.account.auth\u BACKENDS.AuthenticationBackend”,'rest\u framework.authentication.SessionAuthentication','rest\u framework.authentication.TokenAuthentication',)
谢谢-这很有帮助。但是,我们可以使用类似“user=Token.objects.get(Token=Token\u from\u request\u header.user)”的内容创建自定义身份验证后端来获取用户?是的,DRF后端来自Django后端,您应该只需要实现一些额外的方法。
AUTHENTICATION_BACKENDS = (
    # Use Django's session framework for authentication.
    'rest_framework.authentication.SessionAuthentication',
    ....
    'rest_framework.authentication.TokenAuthentication',
)