Django REST Framework BasicAuthentication 未应用为默认身份验证 class
Django REST Framework BasicAuthentication is not applied as default authentication class
我有一个 Django REST Framework 项目,我添加了
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.BasicAuthentication',
]
}
到 settings.py
,我希望 BasicAuthentication
默认应用于所有页面,但它仍然不需要任何身份验证来显示内容。那很奇怪。我必须做我没有做的事情吗?
urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
path('student/', include('blogapp.urls')),
path('api/', include('api.urls')),
path('api-auth/', include('rest_framework.urls')),
]
setting.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'blogapp',
]
blog_app/urls:
urlpatterns = [
path('', StudentView.as_view()),
]
views.py:
class StudentView(generics.ListCreateAPIView):
queryset = Student.objects.all()
serializer_class = StudentSerializer
更新 1:
而且每次观看验证都不起作用!
更新 2:
This是我的项目源码。
身份验证与权限不同。如果您需要对所有用户进行身份验证(使用您希望使用的身份验证方法之一),您还需要添加默认权限 class:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.BasicAuthentication',
],
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
}
此外,请确保您正在测试正确的视图 (/api/list/
)。您的项目(如您链接的那样)有两个 StudentView
,其中一个是 DRF 视图,另一个 (/student/
) 不是。后者不会知道 DRF 配置。
我有一个 Django REST Framework 项目,我添加了
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.BasicAuthentication',
]
}
到 settings.py
,我希望 BasicAuthentication
默认应用于所有页面,但它仍然不需要任何身份验证来显示内容。那很奇怪。我必须做我没有做的事情吗?
urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
path('student/', include('blogapp.urls')),
path('api/', include('api.urls')),
path('api-auth/', include('rest_framework.urls')),
]
setting.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'blogapp',
]
blog_app/urls:
urlpatterns = [
path('', StudentView.as_view()),
]
views.py:
class StudentView(generics.ListCreateAPIView):
queryset = Student.objects.all()
serializer_class = StudentSerializer
更新 1:
而且每次观看验证都不起作用!
更新 2:
This是我的项目源码。
身份验证与权限不同。如果您需要对所有用户进行身份验证(使用您希望使用的身份验证方法之一),您还需要添加默认权限 class:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.BasicAuthentication',
],
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
}
此外,请确保您正在测试正确的视图 (/api/list/
)。您的项目(如您链接的那样)有两个 StudentView
,其中一个是 DRF 视图,另一个 (/student/
) 不是。后者不会知道 DRF 配置。