重複の可能性:
シングル サインオン - 実装方法は?
私は 2 つの異なる Web サイトを持っています。1 つはプロモーション用で、もう 1 つは を使用して製品を販売するためのものですcs-cart
。
ユーザーがプロモーション Web サイトにログインしたときに、ユーザーを cs-cart Web サイトにログインさせる機能を追加するにはどうすればよいですか?
重複の可能性:
シングル サインオン - 実装方法は?
私は 2 つの異なる Web サイトを持っています。1 つはプロモーション用で、もう 1 つは を使用して製品を販売するためのものですcs-cart
。
ユーザーがプロモーション Web サイトにログインしたときに、ユーザーを cs-cart Web サイトにログインさせる機能を追加するにはどうすればよいですか?
これはSingle Sign Onと呼ばれるよく知られた要件であり、それを実装するための標準がいくつかあります。基本的な概念は、要求自体を評価するのではなく、1 つの Web サイト (ID コンシューマー) がユーザー認証要求を別の Web サイト (ID プロバイダー) に委任できるということです。あなたの場合、サイトの 1 つがプロバイダーになり、他のすべてのアフィリエイト サイトがコンシューマーになります。
最初の標準は、OASIS 標準化グループによって維持されているSAMLです。SAML はオープンで大規模であり、実際の例のほとんどは、SAML 仕様全体の小さなサブセットのみを実装しています。Google にはSAML SSO 統合があり、望ましいユース ケースのほとんどをカバーするSimpleSAMLという非常に優れた PHP ライブラリがあります。
この問題を解決するもう 1 つの標準は OpenID です。私はそれを扱ったことはありませんが、良い実装例は Stack Overflow そのものです。
同様の問題を解決し、Facebook を ID プロバイダーとして利用する Facebook Connect もあります。
これは、専門のサービス プロバイダーが自社のプラットフォームを他のプロバイダーと統合しようとしているため、現在注目されているトピックです。幸運を。
私はJavaを使用してそれを行いましたが、PHPでも可能です.Cookieを使用するオプションがありますが、それは同じドメインでのみ機能します.また、サードパーティのソリューションを使用することもできます(これをお勧めします).
http://code.google.com/apis/apps/open_source_projects.html#sso
それについて助けが必要かどうか教えてください、頑張ってください
site.old/superlogin.php
ユーザー認証 Cookie を送信してリダイレクトするページを作成するsite.promo
ログイン後、site.promo
ユーザーをリダイレクトしますsite.old/superlogin.php?token=userUniqueTokenToAuthIt
(認証されてリダイレクトされます)
サイトがサーバーから離れて動作する場合は、同じデータベースを共有できるので簡単です。Cookie を使用することもできますが、簡単に変更でき、問題を引き起こさない方法がわかりません。私がそれを行う方法は、登録/ログインするたびにIPをユーザー情報とともにデータベースに配置して、両方のサイトに行くたびにIPを確認できるようにすることです.
site1 と site2 があります。
ユーザーが site1 にログインしました。
また、最後のリダイレクト後にユーザーを識別するために、site2 の Cookie を作成する必要があります。
これらすべてを理解するには、ソーシャルネットワークにログインすることをお勧めします. (例えばフェイスブック)
はい、この 2 つのサイトが同じデータベースを共有している場合のみ