2011-09-18 15 views
2

私はこの問題を調査しましたが、たいていはワンクリックでグーグルやFacebookのようなサイトにログインしたいという人たちです。シングルサインオンWebページ

ここに私の問題があります:

私は2つのサイトを持っています。どちらのサイトも独自のログインページ(login.php)を持っています。どちらのサイトにも共通のユーザー名があります。私は両方のサイトを管理しています(コードを変更できます)。 ユーザがサーバAのリンクをクリックしたときにサーバBにログインしたいとします。

私はあるサーバが他のサーバに投稿要求を送信することを考えましたが、もう一方のサーバはこのサーバとセッションを作成しますクライアントのコンピュータではなく、

私がしたいことは、現在のログインスクリプトと通信するプロキシログインページを作成することでした。

可能であれば、私はこれをPHPで行う必要があります。

提案/アイデア/リンク

あなたは

答えて

1

あなたはWikimediaSingle User Loginで何をするかを見てみる必要がありますありがとうございました。

システムの仕組みは、プロジェクトにログインするときにトークンが作成され、共有データベースに格納されます。そのトークンは、画像を介してログイン成功ページに入れられます。

<img src="http://meta.wikimedia.org/wiki/Special:AutoLogin?token=TOKENTOKENTOKEN" alt="meta.wikimedia.org" title="meta.wikimedia.org"> 

、ユーザはその結果のプロジェクトは、そのユーザを認証し、ため、ユーザーのクッキーを与える原因となる画像に添付そのトークン、との要求を行う:例えば、このHTMLは、メタプロジェクトへのリクエストが発生しますそのドメイン。

+0

リンク先ページの4行目には、シングルサインオンの解決策が提供されていない、または文章を誤って解釈していると書かれています(英語が話せないため、これが可能です)。 –

+0

@Chaosekie [$ wgSharedDB](http://www.mediawiki.org/wiki/Manual:$wgSharedDB)、CentralAuthではありません。 – JohnD

+0

ありがとう、私はトークンをユーザーに送信する必要があり、ユーザーはそのトークンを使用して他のサーバーにログイン要求を送信しますか?私はこのトークンをページのどこかに保存し、jsでそれを抽出して新しいリクエストで使用する必要がありますか?しかし、このトークンをエンコードして、他のユーザーがそのトークンを傍受してリモート・サーバーにログインするのを防ぐにはどうすればよいでしょうか? –

関連する問題