【问题标题】:Nginx and Django - JWT problemsNginx 和 Django - JWT 问题
【发布时间】: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


【解决方案1】:

问题出在我的 Django 配置上。在我的生产设置中,缺少身份验证类

【讨论】:

    猜你喜欢
    • 2011-01-07
    • 2015-11-08
    • 2011-04-28
    • 2016-04-04
    • 2015-12-17
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 2017-04-20
    相关资源
    最近更新 更多