MongoDB インスタンスを共有する、同じサーバー マシン (異なるポート) で実行されている 2 つの個別の Express 4.x アプリがあります。どちらも異なるデータベースを使用し、異なるセッション シークレットを持っています。
アプリケーション A または B に問題なく個別にログインできます。私のセッションは維持されており、すべて順調です。ただし、A にログインしてから B にログインすると、A のセッションは破棄されます (逆も同様です)。
両方のアプリケーションのローカル認証はほぼ同じです。彼らのserializeUser
とdeserializeUser
は非常に原始的です(ほとんどティーまでパスポートのドキュメントに従います)。
A にログインすると Breq.session.passport
が破棄req.user
され、アプリ A で正しくシリアル化されず、セッションが無効と見なされるようです。
私は、両方のアプリが同じマシン (つまりドメイン) で実行され、ポートだけが異なるという事実に関係していると考え始めています。