4

我正在使用 API,似乎 Nginx 和 uWSGI 正在删除我传递的 HTTP_AUTHORIZATION 标头。

我将 curl POST 发送到运行 Django 的 API 服务器。当我让 Django 打印出 request.META 列表时,我看到 HTTP_AUTHORIZATION 丢失了。

Nginx 配置包含这些:

uwsgi_pass_header HTTP_AUTHORIZATION;
uwsgi_pass_request_headers on;

但是做这两个pass似乎没有任何影响。

知道为什么会有这种剥离......它发生在 Nginx 级别、uWSGI 级别还是 Django 级别?

4

2 回答 2

5

尝试将下划线更改为 curl 帖子中HTTP_AUTHORIZATION的破折号HTTP-AUTHORIZATION

默认情况下,nginx 将带有下划线的标头标记为无效并忽略无效标头。

您可以使用 nginx 指令来允许标头中使用下划线underscores_in_headers on;或不忽略带有ignore_invalid_headers off;.

于 2012-10-29T20:44:05.303 回答
-1

我有一个类似的问题,并将以下设置添加到我的 nginx 配置的位置部分:

uwsgi_pass_header Authorization;
uwsgi_pass_request_headers on;

请注意我使用的值uwsgi_pass_headerAuthorization.

使用这些设置,我的应用程序开始接收身份验证标头,而不会来自 nginx 的警告。

于 2016-11-03T00:00:30.370 回答