nginx的问题。如何使用jwt(Django)对API进行身份验证调用?

时间:2018-03-02 01:11:12

标签: django authentication nginx django-rest-framework jwt

我在使用nginx和django-rest-framework时遇到了一些问题。我已经试图弄清楚如何在大约24小时内向API发出经过身份验证的请求。我真的很累,希望有人可以帮助我。

我有以下nginx conf:

location / {

     if ($request_method = OPTIONS ) {
        add_header 'Access-Control-Allow-Origin' "*;
        add_header 'Access-Control-Allow-Methods' "GET, PUT, POST, PATCH, DELETE, OPTIONS";
        add_header 'Access-Control-Allow-Headers' "Authorization, 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range";
        add_header 'Access-Control-Allow-Credentials' "true";
     }

       uwsgi_pass  django;
       include     /path/to/your/mysite/uwsgi_params;, 
}

以下代码在客户端:

    var xhr = new XMLHttpRequest();
    xhr.withCredentials = true;
    xhr.open('POST', 'http://api/v0/api-token-auth/', true);

    xhr.setRequestHeader('Authorization', 'JWT ' + getCookie("token"))

    xhr.send(JSON.stringify(json)); 

我总是得到401 Unauthorized。我不知道还需要做些什么来解决这个问题。

1 个答案:

答案 0 :(得分:0)

问题是django出于安全原因阻止某些标头允许或阻止请求使用CORS https://github.com/OttoYiu/django-cors-headers