2012-03-09 2 views
2

私はちょっとしたnode.jsプロジェクトに取り組んでいて、グーグルでたくさんのことをしていましたが、ちょっと混乱しましたが、多分あなたの何人かが私を再び道路に向けることができます。複数ドメインログイン

いくつかのウェブサイトはDocPad(優れたソフトウェア)によって生成され、異なるドメインでホストされています。

これらのウェブサイトはすべて、「ログインモジュール」(パスポートを使用してNode.jsでも書かれています)を取得します。視覚的には、Web-Kreation(Hereデモ)の優れたログインスライダーと似ています。私の計画は、nginxを使ってすべての/ login-requestをlogin-appにルーティングすることでした。これは正常に動作しています。

この問題は、むしろ複数のドメインとそのクライアント側の実装に関連しています。すべてのログインで同じデータベースが使用されます。

私は何とか両方を一緒に使用して、Login-Moduleからセッションクッキーを作成できますか(同じドメインを常に使用できますか)

+0

私は質問を明確にする必要があると思う: サイトが別のドメイン(f.e. superexample.com)を使用している間はlogin-app(常にlogin.example.com)のクッキーを設定できますか? 共通ログイン部分をどのように統合すればよいですか?私の推測ではXMLHTTPRequestを使用していますが、今は完全に混乱しています。 – lucorlis

答えて

1

'login-app'でログインすると、現在のユーザーに関する情報を含む暗号化された文字列を作成できます。この文字列をget/postパラメータに渡して、必要なドメインにリダイレクトすることができます。暗号化キーは「login-app」とあなたのウェブサイトにのみ知られています。この暗号化されたデータを信頼できます。同じユーザーのキーが異なるたびに必ず確認する必要があります。たとえば、ログインの時間やランダムな情報を追加することができます。データを復号化した後、特定のドメインに対して認可Cookieを設定することができます。

+0

あなたは、アプリのサーバー側で何が起こっているかをエレガントに記述していますが、これは実際問題ではありません。私は追加のコメントで私の質問を明確にしようとした。 – lucorlis

2

誰か他の人が同じ問題を抱えている場合に備えて、自分の質問に答えています。

最後に、私は少し異なる設定をすることで私の問題を解決しました。モジュールの代わりに、各ページのDNSを使用して、私はすべてのサイトに集中ログインアプリケーションを使用します。サイト自体は個人情報にアクセスする必要はないので、問題はありません。

DocPadはまださまざまなWebサイトを生成するために使用されています(私はこれを非常によく言いますが、素晴らしいソフトウェアがあれば、すべての静的コンテンツはCDNを使用してユーザーに配信されます。

ログインシステムは、唯一のデータベースとしてRedisを使用するnode.jsアプリケーションです。これは、login.example.comのDocPadでレンダリングされたすべてのページ上のシンプルなiframeを介して統合されています。

関連する問題