4

私は API を使用していますが、Nginx と uWSGI が、私が渡した HTTP_AUTHORIZATION ヘッダーを削除しているようです。

Django を実行する API サーバーに curl POST を送信します。Django に request.META のリストを出力させると、HTTP_AUTHORIZATION が欠落していることがわかります。

Nginx の構成には次のものが含まれます。

uwsgi_pass_header HTTP_AUTHORIZATION;
uwsgi_pass_request_headers on;

しかし、これらの 2 つのパスを実行しても、何の影響もないようです。

なぜこのストリッピングがあるのか​​ わかりません...それは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_headerくださいAuthorization

これらの設定により、私のアプリは nginx からの警告なしで認証ヘッダーの受信を開始します。

于 2016-11-03T00:00:30.370 に答える