ユーザー名/パスワード戦略でPassportJSを使用して、Web サイトでユーザーを認証しています。ユーザーが HTTPS 経由でログインする必要があることを確認し、セッション cookie が HTTPS 経由でのみ送信されることを確認しました。
app.use(express.session({
// ...
cookie: { secure:true }
}));
しかし現在、誰かが (HTTPS 経由で) ログインし、HTTP 経由で Web サイトに戻った場合、ブラウザが Cookie を送信しないため、ログインしていないように見えます。
ログインしているユーザーを HTTPS にリダイレクトしたいと考えています。
私は 2 つの Cookie を発行する必要があると考えています。1 つはセッションの詳細を含むもの ( とマークsecure: true
) で、もう 1 つは単に「ログインしています」と表示するもの ( とマークsecure: false
) です。HTTP 経由で 2 番目の Cookie が表示された場合は、HTTPS にリダイレクトでき、安全な Cookie が送信されます。Presto: ログインしたユーザーは HTTPS にリダイレクトされます。
質問: Express でこれを行うにはどうすればよいですか?