私は現在、2つの別々のノードアプリケーションを2つの異なるポートで実行していますが、同じバックエンドデータストアを共有しています。私は2つのアプリケーション間でユーザーセッションを共有する必要があります。そのため、ユーザーが1つのアプリケーションからログインしたときにセッションが利用可能になり、他のアプリケーションにログインしているように見えます。この場合、その「公の場のウェブサイト」と管理バックエンド。 ノードアプリケーション間の共有セッション
- ノード:
私たちのセットアップは以下のとおりです。 。
- 私たちのドメインは、次のようになります。www.mydomain.comとadm.mydomain.com
セッションのもの(とRedisの)のためのための設定は、両方のアプリケーションで同じです:
session: {
options: {
secret: "my secret",
cookie: {
domain: "mydomain.com",
maxAge:1000*60*60*24
}
},
redis: {
host: 'my host',
maxAge: 86400000,
secret: "my secret"
}
}
app.jsでのセッションのもののための設定は以下のようになります。私たちは同じのSESを参照することを許可する:私はそれがを行うことを期待するもの
if (app.settings.env === "production") {
session.options.store = new RedisStore(session.redis);
}
app.use(express.session(session.options));
app.use(passport.initialize());
app.use(passport.session({ secret: 'a different secret' }));
2つのアプリの間のクッキー内のイオンID。
私の質問はです:異なるサブドメイン間でセッションを共有できるように、Express、Redis、Passportを設定するにはどうすればよいですか?
私はあなたが必要とするかもしれないと思いますクッキードメインを '" .mydomain.com "'として指定する - 先頭の '.'に注意してください。 –
"*"を付けないでください。私たちは昨日テストで "* .mydomain.com"を使いましたが、それはうまくいかないようでした。 私は今朝これを試して、結果が何であるかを見ていきます。 – jpittman
'*'と入力しましたか?その場合、ええ、先行するドットだけ。私はこれが、さまざまなサブドメインからのクッキーの読み取りを可能にするものだと思います。私に知らせて、私は答えとしてそれを供給することができます。 –