gpt4 book ai didi

djangorest框架在nginx后面时给出403,但不是直接给出

转载 作者:行者123 更新时间:2023-12-01 20:14:41 25 4
gpt4 key购买 nike

使用 django-rest-framework。在 nginx 后面的生产中运行时,我收到 HTTP 403 错误。当我调用一个继承自 APIView 以支持 GET 操作的特定 View 时,我得到:

{"detail": "Invalid username/password"}

但是...我只能在浏览器中得到这个。当我对同一个 URL 使用curl 时,我不明白。无论是在 Chrome 还是 Firefox 中直接点击 URL,还是通过 AJAX 加载 URL,我都会收到此错误。

如果我首先使用管理员帐户通过 Django 管理员登录,则不会收到错误消息。

另外,我只知道我是从 nginx 后面运行的。如果我使用 Django 开发服务器或 Gunicorn 运行,并直接访问端口,那就没问题,并且可以愉快地匿名访问 URL。如果我然后将 nginx 放在此前面,以转发到同一个gunicorn/runserver,我会收到此错误。

也许这与我的 nginx proxy_pass 设置有关?

location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

我正在运行 django Rest Framework 2.2.6、Django 1.5 和 nginx 1.2.7。

我在休息框架中将限制设置为一个愚蠢的高数字,并查看了默认情况下所有似乎打开的权限(但也明确设置为如此)。

有人能指出我正确的方向吗?

谢谢!

卢多。

最佳答案

就我而言,我在 Apache 中配置了 HTTP 基本身份验证,但在 Django 项目中没有配置。由于该请求具有身份验证 header ,因此 Django 应用程序认为我想使用它进行身份验证。我使用以下设置在 Django REST 框架中禁用了身份验证:

REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': []
}

关于djangorest框架在nginx后面时给出403,但不是直接给出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15975106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com