0

最近、リアルタイム Web アプリケーションであるプロジェクトに取り組みました。

私はsocket.ioをデータ サーバーとして使用しており、そのドメインがwww.a.com. 一方、 httpサーバーとしてexpressを使用し、そのドメインはwww.b.com.

ここで問題が発生します.2つのサーバー間でセッションを同期したい場合(つまり、ユーザーwww.a.comがsocket.ioでログインすると、ユーザーがアクセスしたときにログインしますwww.b.com)、どうすればそれを行うことができますか?

前もって感謝します :)

ps: 私の拙い英語を許してください...

==更新==

私は 1 つの解決策を試しました: の魔法を使用して、postMessage異なるタブ間で通信します。

ユーザーが にログインすると、 を参照するwww.a.comを作成します。そして、ログイン データを からに渡し、何かをトリガーして にログインすることができます。iframesrcwww.b.comwww.a.comwww.b.comwww.b.com

しかし、問題を解決する最善の方法ではないと思いますが、安全ですか? または他の問題を生成しますか?そして、他の解決策があるのだろうかと思います。

4

1 に答える 1

0

その性質上、Cookie (セッション ID を保存する) は異なるドメインから読み取ることはできません。あるドメインからのログイン データを暗号化し、それを GET 要求 (アドレス バー) に配置して、ユーザーが 2 番目のドメインにログインする必要がないようにする Apache の mod を知っています。申し訳ありませんが、それが何と呼ばれていたか思い出せませんが、同様のことを行うことができます。必要なのはrequire('crypto')だけだと思います。

編集:ソケットとWebサーバーを異なるドメインで実行するのはなぜですか? それらが同じドメインで実行された場合、sockets.io がセッション データを取得できるようにするモジュールがあると思います。私はそれを自分で使用したのではなく、それについて読んだだけです。

于 2013-12-30T14:59:47.310 に答える