複数のポートの単一サーバー上でExpressセッションを使用して複数のMEANアプリケーションを実行しています。アプリケーションAに認証すると、もう一方(アプリケーションB)に確立されたトークンが変更されます。その後、アプリケーションBの認証されたユーザーセッションは拒否されます。単一サーバー、異なるポート上での明示セッション・アプリケーションの複数Express
トークンを個別に保持して検証するには、どのようにアプリケーションを構成するのですか?たとえば、localhostでは、アプリケーションAはポート80で動作し、アプリケーションBはポート90で動作します。ユーザーが別のユーザーのアプリケーションBセッションを中断することなくアプリケーションAを認証して使用できるようにしたいとします。ここで
は私の問題に関連するべきである私のapp.jsファイル内のコードである:(にセッション識別子を格納するために使用されている)
// Connect to database
mongoose.connect(config.mongo.uri, config.mongo.options);
var connection = mongoose.createConnection(config.mongo.uri, config.mongo.options);
var app = express();
// enable CORS
app.use(cors());
// enable cookieParser
app.use(cookieParser());
// enable session
app.use(session({
secret: config.secrets.session,
resave: false,
saveUninitialized: true,
name: 'uniqueSessionId',
store: new MongoStore(
{
mongooseConnection: connection
}
)
}));
ドキュメントごとに、セッションオブジェクトを一意の名前を使用して変更しようとしましたが、動作しませんでした。 2つのアプリケーションは、依然として相互に干渉しています。 – Bibble
古いクッキーも削除しましたか? – robertklep
はい、アプリケーションのCookieの新しい名前と「トークン」という名前のCookieが表示されます。私は1つではなく、それぞれのアプリケーションのためにトークンクッキーが必要かどうか疑問に思っていますか?トークンクッキーは各アプリケーションによって変更され続けるものです。 – Bibble