ホームページ >バックエンド開発 >PHPチュートリアル >ucenter 同期ログインメカニズム_PHP チュートリアル

ucenter 同期ログインメカニズム_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:31:081078ブラウズ

PHP 開発に携わっているほとんどの友人は、複数のサイトに同時にログインおよびログアウトし、ユーザーを同期するために使用できる ucenter の存在を知っています。次に、著者が ucenter が同期ログインを実装する方法を紹介します。

まず、サイトは uc_client などのクライアントを導入する必要があります。login を例にとると、ログイン時に最初に外部関数が呼び出されます。uc_client/client.php にある uc_user_login がこのユーザーが存在するかどうかを確認します。ログイン コードの実行を続行し、このユーザー プロセスを検出します。ユーザーが UC に接続する方法 (mysql または http post) を決定し、それに応じてさまざまな関数を使用してユーザーを検出します。検出が完了すると、ローカル ログインが実装され、コードは次のようになります。これを外部関数 uc_user_synlogin を呼び出すと、次のような処理になります。

Uc_user_synlogin は uc_api_post を呼び出して、どのモジュールが使用されるかを認識します。つまり、渡されるパラメーターは user_id です。つまり、これがどのように実装されるかについては詳しく説明しません。 php のインデックスである uc_api に追加し、これらのパラメータに基づいて、その中の通信可能なアプリケーションをすべて読み取ってログインさせます。これは他のプログラムの問題です。

他のアプリケーションへの通知は主に ucenter を使用して各アプリケーションの api/uc.php にデータを送信し、そのデータは uc.php によって受信され、対応するログイン操作が実行されます。

これは私が書いたものです。すべての機能を詳しく書きたかったのですが、笑、自分で見つけるのは簡単です。

1. ユーザーxxxが特定のアプリケーションのlogin.phpにユーザー名とパスワードを入力するところから始めましょう。まず、uc_user_login 関数を使用して、uc サーバー上のユーザーとパスワードを確認し、正しい場合は、セッションを書き込み、Cookie を書き込み、アプリケーション メンバーシップ テーブルのログイン IP とログイン時間を更新します。ユーザーはこのプロセスを感じることができません。

2. 次に、uc_user_synlogin を通じて、ユーザー xxx が正常にログインしたことを uc サーバーに通知します。このプロセスでは ajax が使用される場合があり、ユーザーは通知プロセスを感じません。

3. このメッセージを受信した後、UC サーバーはすぐにその配下に、このメッセージを受信する他のすべてのアプリケーションに (同期ログインがバックグラウンドで有効かどうかに関係なく) トークン リングのような xxx ログイン メッセージを送信するように命令しました。実際には、各アプリケーションの uc.php にパラメータを付けてアクセスするだけであり、ユーザーはこのプロセスを感じることができません。

4. 各アプリケーションは、API の下で uc.php に依存して、uc サーバーからメッセージを受信し、uc サーバーの指示に従い、要求されたことをすべて実行します。ここで、ユーザー xxx がプログラムにログインするためのコマンドを受信したら、すぐにそれを実行します。そして、このアプリケーションのセッションを書き込み、p3p を使用して同じドメインまたは別のドメインに Cookie を書き込みます。このプロセスはユーザーには感じられません。

5. 最後に、すべてのプログラムが uc に統合され、xxx が正常にログインしました。ユーザーが www.phpernote.com/bbs からログインした後、www.phpernote.com/ にジャンプしたときにもログインが表示されます。 bbs とニュース システムの両方がバックグラウンドでログインしているためです。

6. アプリケーションと uc サーバー間のセッションが終了します。

興味がありそうな記事

    dedeCMSバックエンドログインページから広告を削除する方法
  • php出力制御ob_flushとflushの違いを深く理解する
  • Webサイト上の複数のURLが同じコンテンツにアクセスするのは危険です
  • httpリクエストにおける同期リクエストと非同期リクエストの違い
  • js setIntervalとsetTimeoutの使用状況分析
  • CuteFTPがFTPサーバーに接続するときに「無効なパラメータが発生しました」エラーの解決策
  • ジャンプするにはbreak、Continue、を使用してくださいPHPの複数のループのうち、goto、return、exitの使い方と違い
  • mysqlでのtinyint、smallint、int、bigint型の使い方の違い

http://www.bkjia.com/PHPjc/764139.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/764139.html技術記事 PHP 開発を行っているほとんどの友人は、複数のサイトの同時ログインと終了やユーザー同期機能を実現するために使用できる ucenter の存在を知っています。以下の著者が、ucenter が同期ログインを実装する方法を説明します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。