ホームページ >バックエンド開発 >PHPチュートリアル >2 つの Web サイト間のデータの同期とログインに関する問題 (CSDN はどのように行うのですか?)
2 つの Web サイト間のデータ同期とログインに関する問題 (CSDN はどのように行うのですか?)
こんにちは
プロジェクトで問題が発生したため、ご意見をお聞きしたいです
Web サイトが 2 つあり、1 つはは asp.net によって開発され、データベースは mssql を使用しています
もう 1 つは php を使用しており、データベースは mysql です。 次に、次のことを行う必要があります:
2 つの Web サイトのユーザー データを同期します。つまり、別の Web サイトにログインするだけでなく、2 つの Web サイトで何らかのアクションを実行することでポイントも同期する必要があります。両方の Web サイトで使用できます。
2 つの Web サイトは同じコンピューター室に配置され、Web サーバーは同じドメイン名の異なるサブドメインを使用して DB サーバーに高速にアクセスできます。 2 つの Web サイトを同期するアイデアや、シングル サインオンを実装する方法があるかどうかを尋ねるには、使用できるさらに成熟した方法やフレームワークはありますか?
さらに: 1. 「2 つのステーション」ドメインをまたがらないでください~~ 2. CSDN がどのように uhome と統合されているかも聞きたいです。
ありがとうございます
-----解決策-------------------------- ------
与えられたポイントは少し低いです!
ご指摘の効果については、さまざまな方法があります!
1. webservice
2. データベースデータの一部を共有(とにかく1つのコンピュータ部屋)
3.xxxxメソッド
------解決策----------------------
ucenter を使用するには、ASP 復号化プロトコルが必要ですphpと同じです。
その他はすべて簡単です。
ログイン情報はucenterによって配布および同期されます。
Web サービスを使用する場合、これは受動的にしか機能しない可能性があります。同期を解除します。
パッシブ。確認する必要がある場合は、Web サーバーにアクセスして、ログインしているかログアウトしているかを確認します。存在する場合、ログインしているとみなされます。 これには、プログラムが Web サーバーを頻繁に、または必要に応じてチェックする必要があり、アプリケーションが終了する場合、別のプログラムがチェックしない限り終了しません。
------解決策---------
SESSION を共有することで実現できます:
UCENTER 同期メカニズムを見て、SSO について話します
まず SSO (シングル サインオン) について話しましょう。その一般原則は、サイトにパブリック ユーザー認証システムがあり、すべてのログインとログアウトが行われるということです。このシステムが処理します。これはサイト C として理解できます。現在、同期する必要がある 2 つのサイト A と B があります。ユーザーが A にアクセスすると、A はまず C にアクセスして、ユーザーが C に登録しているかどうかを確認します。そうでない場合は、C に直接ジャンプします。成功すると、A にジャンプし、ユーザー情報を保持するために A に COOKIE を保存します。この時点で、A は正常にログインします。ユーザーが再度サイト B を訪問すると、システムは認証サーバーに COOKIE 値を返し、それが正当であるかどうかを確認します。正当であれば、ユーザーはログインしたとみなされ、再度ログインする必要はありません。さらに多くのサイトがある場合も同様の原理が適用され、複数のサイトの同期機能が実現されます。 (ここでは、各サイトのユーザー セッション メカニズムが異なる場合があります。認証側から返された情報に基づいて、各サイトが独自のアプリケーション セッション情報を構築できるようにします。)
したがって、単純な SSO を完了するには機能、2 異なる部分間の連携:
1. 統一 ID 認証サービス。
2. 各アプリケーションがこの統一認証サービスを通じて本人確認を行うように Web アプリケーションを変更します。
Kangsheng 製品を使用したことがある方はご存知かと思いますが、これにより DISCUZ、SUPESITE、UCHOME などのすべての製品を連携して使用できます。 前回の記事「UCenter のクロスドメインおよびシングルポイント ログイン メカニズムの分析」
http://www.trindo.cn/?action=show&id=60 では、ログイン時を中心にその実装メカニズムを大まかに分析しました。任意のサイトにアクセスすると、UCENTER 内に存在するすべてのサイト リストをバッチ処理して同期の原理を実現します。
これを見ると、UCENTER が実際には単純な SSO であることがわかります。ただし、同期する必要があるサイトが多数ある場合、UCENTER の処理は非常に困難になります (多くのネチズンはこれを認識しているはずです)。そして、通常の処理メカニズムを使用すると、サイトがいくつあっても、それらはまったく影響を受けません。特定のサイトを使用する場合にのみ、そのサイトは認証システムと対話し、リソースが無駄にならないためです。
私は少し前にプロジェクトに取り組んでいて、JSP サイトを PHP サイトと同期する必要があることに遭遇しました。ここでは、このファイルの主な目的は、暗号化することです。 PHP および JSP の暗号化と復号化。認証システムは JSP で記述されます。 この PHP 同期ファイルは、ユーザーがログインする必要がある場所に含まれています。ユーザーがこのページにアクセスすると、(ユーザーがメイン サイトにログインしている場合)、システムはローカルに存在する COOKIE 情報を認証システムにスローします。認証処理後、正しい場合はユーザー名が返され、認証が失敗した場合は、PHP 側でユーザー名に基づいてセッション メカニズムが処理されます。認証のために認証システムに直接ジャンプします。