Ika*_*lou 6 django nginx django-rest-framework
如果我的webservice(由Django Rest Framework,v2.3.8提供支持)位于受Nginx的HTTP基本身份验证保护的位置内,如下所示:
location / {
auth_basic "Restricted access";
auth_basic_user_file /path/to/htpasswd;
uwsgi_pass django;
include /etc/uwsgi/config/uwsgi_params;
}
Run Code Online (Sandbox Code Playgroud)
然后,当用户进行身份验证并尝试访问API时,将获得所有视图的以下响应:
{"detail": "Invalid username/password"}
Run Code Online (Sandbox Code Playgroud)
即使视图不需要身份验证,Django Rest Framework是否会获取HTTP Authorization标头(适用于Nginx)?如果是这样,我该怎么办呢?
任何帮助将不胜感激.
小智 7
默认情况下,Django Rest Framework有两个身份验证类,请参见此处.
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication'
)}
Run Code Online (Sandbox Code Playgroud)
如果不需要,可以禁用其余的框架身份验证.
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': ()
}
Run Code Online (Sandbox Code Playgroud)
或者您只能删除,BasicAuthentication因为它将在您的情况下工作.
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication'
)}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1966 次 |
| 最近记录: |