【发布时间】:2019-06-07 06:28:19
【问题描述】:
我正在使用 Django Rest Framework 来创建 API。当我在本地运行它时效果很好,但是当我将它部署到我的服务器时,我遇到了 JWT 的问题。当我尝试发布新数据时,我收到一条错误消息:
"detail": "未提供身份验证凭据。"
当然,我传递的是 Authorization 标头:
authorization: JWT eyJ0eXAiOiJK.....
在我的服务器上,我正在使用带有 gunicorn 的 nginx。这是我的 nginx 配置:
upstream api {
server unix:/home/bartalamej/api.sock fail_timeout=0;
}
server {
listen 80;
root /var/www/html;
index index.html index.html;
server_name api.mysite.cz;
location /v1 {
rewrite ^/v1/(.*)$ /$1 break;
include proxy_params;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header REMOTE_USER $remote_user;
proxy_set_header Authorization $http_authorization;
proxy_set_header USE_X_FORWARDED_HOST True;
proxy_pass http://api;
}
location /media {
alias /home/bartalamej/api/media;
}
location /static {
alias /home/bartalamej/api/static;
}
}
任何帮助将不胜感激:)
【问题讨论】:
-
你知道令牌停在哪里吗?您是否在开发者工具中看到它是从浏览器发送的?你在它的日志中看到它被 nginx 接受了吗?你看到它在适当的中间件中被 Django 接受了吗?传递的值是否正确?
-
我在 nginx 日志中看不到任何内容。我不知道如何签入 django 接受我的令牌
标签: django api nginx jwt gunicorn