我有两个Django项目,都使用
django.contrib.auth.backends.ModelBackend
。进行身份验证。
出于某种目的,我必须在内部集成两个项目,为此我使用了令牌身份验证。 在两个项目中都创建了令牌,并用于验证请求。
但是,如果请求被django.contrib.auth.backends.ModelBackend
授权或包含有效的Authorization Token
第一项目设置的一部分。
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
)
REST_FRAMEWORK = {
'DEFAULT_PARSER_CLASSES': (
'rest_framework.parsers.JSONParser',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
)
}
第二个项目设置的一部分。py:
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
)
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
)
}
我尝试使用
"""
CustomizedViewSet has inherited mixins, GenericViewSet
"""
class OrderViewSet(CustomizedViewSet):
queryset = Order.objects.all()
serializer_class = OrderSerializer
permission_classes = (IsAuthenticated,)
authentication_classes = (TokenAuthentication,)
当我使用有效的csrftoken and sessionid
请求网址而没有Authentication Token
的网址时
未经授权的HTTP 401
{
"detail": "Authentication credentials were not provided."
}
是否可以使用两种身份验证方法
(IsAuthenticated and TokenAuthentication)
在视图集上?