私は現在、APIとファイルを提供するNode.jsアプリケーションを実行しています(nginxはそれを処理できると知っていますが、最初はそれを使用するはずがありませんでした)。基本認証とJWT
私はそれを単純な基本認証に使用していますが、これは簡単ではありません。ここで
は私のnginxの設定ファイルである:
upstream nodejsapp {
server 127.0.0.1:1337;
keepalive 15;
}
server {
listen 80 default_server;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_redirect off;
location/{
proxy_pass http://nodejsapp;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
}
}
/etc/nginx/.htpasswd
ファイルがちょうどuser:encryptedpassword
あると良いです。この設定では
、私は私のIPに行くこと:
- がページをロードするために
- 開始私にユーザー名とパスワードを要求する (時々)
- ユーザーとパスワード のために再度尋ね
- ページの読み込みを終了します
これまでのところ、パスワードが2回尋ねられたとしても、それほど良いものでした。
Node.jsアプリケーションにはJWT認証があります。ログインすると、Webサイトがリロードされ、ここから、ログインをクリックすると、ユーザーとパスワード(基本認証)が無期限に要求されます。 JWTは私のローカルストレージにあります。基本認証のプロンプトで[キャンセル]をクリックすると、JWTが削除されてログアウトされ、基本認証が再度尋ねられます。
これはChrome版です。 FirefoxとSafariでは、JWTロギングの後、自動的にトークンがローカルストレージから削除されます(ログアウトされます)。
説明が難しく、ウェブサイトを表示できません。要するに、主な問題はJWT(node.jsアプリの)が削除されていることです。 I問題が(@Curiousは称賛に示唆されるように)基本認証とJWT間競合であり、それらは両方Authorization
ヘッダを使用して、溶液が非常に容易であったことをことを理解
:基本認証が渡された後、次に、それは、非常に単純ですが、私はちょうど(ここ興亜に基づいてのNode.jsアプリケーション、上)のヘッダーを置き換えますとJWT。私は間違っているかもしれませんが、私が知る限り、どちらのメソッドも 'Authorization'リクエストヘッダーを使用しているので、彼らが驚くべきことではありません。 – Curious
はい、いくつかの調査の後で、問題がある可能性があることを確認します – Cohars
これについての修正が見つかるとは思わないでしょうか。 – Cohars