2011-01-27 11 views
1

たとえば、2つのアプリがあり、1つはabc.com、もう1つはxyz.comです。異なるドメインの複数のアプリケーションに一度ログインするにはどうすればよいですか?

私がしたいのは、あるユーザがabc.comにログインした場合、彼はxyz.comにも自動的にログインします。彼はabc.comにログインした後を意味し、ブラウザの新しいタブでちょうどオープンxyz.com、彼はすでにログインしていることが示されたことになる。

それはあなたがmsn.comでログインしている場合、msn.comhotmail.comと同じだし、オープンhotmail.com、あなたはまだログインしてきた見ることができます。

を私はCIを使用していて、ログイン情報のために私は(実際にはクッキーです)CIのセッション機能を使用しますが、クッキーがクロス異なるドメインを共有することはできませんようです。

私はCURLを使用しようとしましたが、CURLでxyz.comを実際ににすることはできません。

そして、私はまた、Googleの周りに検索した、はどのように私はセッションを渡すことができ、abc.comxyz.comの間にはリンクがありません、多くの人々は、セッションIDを渡すために提案したが、問題がありますか?セッションIDをデータベースに格納すると、どのユーザーがこのセッションIDを使用するべきかをどのように識別できますか? IPによって明らかに安全ではありません:D

私を助けてください!

+0

あなたが探しているのは、基本的にシングルサインオン(またはSSO)ソリューションです。 OpenIDを読んで(ここで使用されているように)、試してみました(非常に便利です)。 – wimvds

答えて

2

abc.comに接続するxyz.comでiframeを開き、iframeからjs関数を呼び出して、ijax/jsを使ってiframeからxyz.comに何らかのトークンを転送することができます。

だから、それは以下のようになります。

XYZ.com:

function authAbcUser(token) { 
    //During this function you will set a cookie for this user on XYZ.com 
} 
<iframe height="0" width="0" src="http://www.abc.com/auth.php?token"></iframe> 

ABC.com/auth.php:

parent.authAbcUser(token); 
+0

thx!これを試してみよう! – JuLy

+0

hmmmmm、sryしかし、どのようにセキュリティのことをabt? – JuLy

+0

どういう意味ですか? –

関連する問題