2016-08-04 16 views
0

完全に明確にするために、私は間違いなくサブドメインだけでなくドメイン間のセッションを共有することを意味します。Rails 5のドメイン間でログインCookie /セッションを共有する

とにかく、<name>.tumblr.comに行くことによってブログにアクセスできるTumblrを想像してください。ただし、カスタムドメインを使用するように設定することもできます。

私たちは同様のことをしようとしています。通常どおり、サイトの一部にアクセスしたり、カスタムドメインを使用してサイトの一部にアクセスできるように設定することができます。

ここで重要な部分は、どのドメインが使用されていても、すべて同じボックスで処理されることです。異なるドメインから同じRailsアプリにアクセスしているため、これはSSO自体ではありません。とにかく


、質問:ユーザーは、当社のメイン・サイトにログインしている場合、彼らはカスタムドメインを介して私たちのサイトを訪問したときに再度ログインする必要がないようにそれを作るための最善の方法は何ですか。

基本的には、ユーザーが一度サインインして、私たちのサイトにアクセスするために使用したドメインに関係なくサインインしたままにします。

アドバイスありがとうございます。

答えて

0

メインドメインのiframeにセッションを保存し、postMessageでアクセスできます。このiframeのプロセスでこのメッセージをページの

parent.postMessage(JSON.stringify({user_id: <%[email protected] %>, token: <%[email protected] %>, etc...}), '<%= @target_origin || '*'%>'); 

とイベントリスナー:あなたはIFRAMEをロードすることができ

のようなものが含まれてい

var listener = function (e) { 
    if (e.origin === correctIframeTarget) { 
    var data = JSON.parse(e.data); 
    // etc... 
}; 

if (window.addEventListener) { 
    window.addEventListener('message', listener); 
} else { 
    window.attachEvent('onmessage', listener); 
} 

お知らせ:イベントリスナーは、IFRAMEの読み込みの前に追加する必要があります。

関連する問題