nginx的问题。如何使用jwt(Django)对API进行身份验证调用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx的问题。如何使用jwt(Django)对API进行身份验证调用?相关的知识,希望对你有一定的参考价值。
我在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。我不知道还需要做些什么才能解决这个问题。
答案
问题是django为了安全原因阻止某些标头允许或阻止请求使用CORS https://github.com/OttoYiu/django-cors-headers
以上是关于nginx的问题。如何使用jwt(Django)对API进行身份验证调用?的主要内容,如果未能解决你的问题,请参考以下文章
DRF:如何将 django-rest-framework-jwt 集成到 Djoser
每次使用 django-graphql-jwt 生成新令牌时,如何撤销 JWT?
JWT 身份验证:使用 UI 令牌对 Graphene/Django (GraphQL) 查询进行身份验证?
当他从所有浏览器(Django-rest-auth,JWT)更改密码时如何注销用户?