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 次  |  
        
|   最近记录:  |