ホームページ  >  記事  >  バックエンド開発  >  UCenter シングル サインオン/同期ログイン/同期ログアウト インスタンス_PHP チュートリアル

UCenter シングル サインオン/同期ログイン/同期ログアウト インスタンス_PHP チュートリアル

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

ucenter 多くの友人が使用すると思います。よく複数のシステムや異なるフォーラムを統合する機能です。

UCenter同期プロセス:

前提として、Ucenter に同時ログインを必要とするアプリケーションを追加する必要があり (効果を確認するには少なくとも 2 つ)、次のように表示されます: 通信成功

2 つのアプリケーション Web サイト A と B を追加するとします

1. まず、サイト A がログインすると、ログインが成功した後、uc_client によって提供されるメソッドを呼び出して、UCenter から 2 つのスクリプト コード (サイト A と B) を取得します。 api/uc.php の login メソッドは、メソッド内でログインに必要なセッションと Cookie の操作を実行できます。

2. ログアウトする場合、操作はログインと同じです。その目的は、ステーション A と B の api/uc.php でログアウト メソッドをトリガーするための 2 つのスクリプト コードを取得する必要があります。

キーポイント: 2 つのスクリプト コードを取得した後、出力でブラウザを実行する必要があります。そうしないと、同期ログインとログアウトが実現されません。

提案: 開発およびデバッグするときは、ブラウザー監視を使用して戻り出力値を確認してください。Chrome F12 を使用して [ネットワーク] タブを開きました。

詳細な例

いわゆるシングル サインオンは、同期ログインと同期ログアウトを実現するためにユーザー センターを共有する複数のサイトに他なりません。

サーバー側: Loog SSO

カスタマーサービス: ucenter、正直に言うと、dz の商用化により、PHP は確かに大幅に発展しました。

ucenterの基本原則:

実際、最終的にログインするのはユーザーですが、ajaxを使用するとユーザーは気づきません。

ucenter を使用した具体的な手順を見てみましょう:

config.php [PHPコード]:

設定ファイルを作成した後、ucenter バックエンドにアプリケーションを追加します。「UC_KEY」はカスタマイズする必要があり、config.php と同じである必要があることに注意してください。

次のステップは、ホームディレクトリの api/uc.php です

たとえば、アプリケーションの URL が http://www.bKjia.c0m と入力されている場合、対応する http://www.bKjia.c0m/api/uc.php になります。

カスタマイズをご希望の場合は対応をご確認ください。

最も重要なことは api/uc.php です。同期ログインは各アプリケーションの uc.php にアクセスすることです。これについては Dz がすでにデモを行っています。

[PHPコード]:

コードは次のとおりです
コードは次のとおりです コードをコピー

define(‘UC_CONNECT’, ’mysql’); // UCenter への接続方法: mysql/NULL、デフォルトは fscoketopen()

//データベース関連 (mysql に接続し、UC_DBLINK が設定されていない場合、以下の変数を設定する必要があります)
define('UC_DBHOST', 'localhost') // UCenter データベース ホスト
define('UC_DBUSER', 'root'); // UCenter データベースのユーザー名
define('UC_DBPW', '123'); // UCenter データベースのパスワード
define('UC_DBNAME', 'ucenter'); // UCenter データベース名
define('UC_DBCHARSET', 'utf8'); // UCenter データベースの文字セット
define('UC_DBTABLEPRE', 'ucenter.uc_'); // UCenter データベース テーブルのプレフィックス
define('UC_KEY', 'safefewfef'); // UCenter との通信キーは UCenter と一致している必要があります
define('UC_API', 'http://www.bKjia.c0m/uc');// アバターを呼び出すときにこの定数に依存する、UCenter の URL アドレス
define('UC_CHARSET', 'utf-8'); // UCenter の文字セット
define('UC_IP', '127.0.0.1'); // UCenter の IP。UC_CONNECT が非 mysql モードで、現在のアプリケーション サーバーがドメイン名の解決に問題がある場合は、この値を設定してください
define('UC_APPID', '3'); // ucenter の現在のアプリケーションの ID に対応します
define('UCDOMAIN','http://www.bKjia.c0m/') // ドメイン名の設定

//いくつかの Cookie 設定
$_UC = 配列(); $_UC["cookiedomain"] = ” // クッキーのスコープ
; $_UC["cookiepath"] = '/' // Cookie アクションのパス
; $_UC["cookiepre"] = 'uc_' // クッキーのプレフィックス
; $_UC["cookietime"] = ’31536000’ //クッキーのアクション時間
;

コードをコピーdefine('API_DELETEUSER',0); //ユーザー削除 API インターフェイス スイッチ define('API_RENAMEUSER', 0); //ユーザー名変更 API インターフェースのスイッチ define('API_GETTAG', 0); //note タグ API インターフェイス スイッチを取得します これらのパラメータは、他のアプリケーションに提供される機能スイッチです
define('API_SYNLOGIN', 1); //note 同期ログイン API インターフェイスのスイッチ
define('API_SYNLOGOUT', 1); //note 同期ログアウト API インターフェイス スイッチ
define('API_UPDATEPW', 0); //ユーザーパスワード変更スイッチ
define('API_UPDATEBADWORDS', 0); //キーワードリストのスイッチを更新することに注意してください
define('API_UPDATEHOSTS', 0); //note ドメイン名解決キャッシュスイッチを更新します
define('API_UPDATEAPPS', 0); //アプリケーションリストのスイッチを更新することに注意してください
define('API_UPDATECLIENT', 0); //クライアントキャッシュスイッチを更新することに注意してください
define('API_UPDATECREDIT', 0); //ユーザーポイントの更新に注意してください
define('API_GETCREDITSETTINGS', 0); //note ポイント設定スイッチを UCenter に提供します
define('API_GETCREDIT',0); //note ユーザーのポイントスイッチを取得します
define('API_UPDATECREDITSETTINGS', 0); //note アプリケーションポイント設定スイッチを更新します



最後に、自分のページと同時に他のアプリにログインする方法について

[PHPコード]:

コードは次のとおりですコードをコピーinclude_once '../config.php'; include_once '../uc_client/client.php';


認証ログインセクション

コードは次のとおりです

コードをコピー $ucsynlogin = uc_user_synlogin($uid);//同期ログイン echo $ucsynlogin;//ajax なので echo が必要です 欠点は、Ajax クライアントリクエストを使用するため、10 個を超えるアプリケーションがある場合、ログイン速度が遅くなるということです。現時点では、Qiye Loong SSO を検討してください。
list($uid, $username, $password) = uc_user_login($_POST[username], $_POST[password]);//ucenter 認証を入力します



PHP のみを使用する Kangsheng のソリューションは非常に優れており、p3p ヘッダーを使用してさまざまなドメイン名でのシングル サインオンを実現します
上記のことを理解すれば、PHP の CMS と ucenter 間の通信は難しくありません。

http://www.bkjia.com/PHPjc/632783.htmlwww.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/632783.html技術記事多くの友人が ucenter を使用すると思います。これは、複数のシステムや異なるフォーラムを統合することが多い機能です。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。