[英]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.