ホームページ >php教程 >PHP开发 >ucenter会員の同期ログイン通信原理の簡易分析

ucenter会員の同期ログイン通信原理の簡易分析

高洛峰
高洛峰オリジナル
2016-12-30 16:44:341244ブラウズ

1. ユーザーは discuz にログインし、logging.php ファイルの uc_user_login 関数を通じて投稿されたデータを確認します。つまり、ユーザー名とパスワードを確認します。

2. 検証が成功すると、uc_client の下の client.php ファイルにある関数 uc_user_synlogin が呼び出されます。この関数では、uc_api_post('user', 'synlogin', array('uid'=>$uid) が呼び出されます。 )) が呼び出されます。

3. 次に、この関数は Ucenter の Index.php にデータを渡し、Index.php は渡されたデータを受け取り、モデルの値を user として、action を synlogin として取得します。

4. 次に、Ucenter のindex.php は、foreach ループを通じて、同期ログインを有効にする uc アプリケーション リスト内のアプリケーションに通知します。つまり、get メソッドを使用して、各アプリケーション ディレクトリの API の下にある uc.php にデータを渡します。

5. uc.php は通知を受け取り、取得したデータを処理し、関数 synlogin (uc.php にあります) 内の関数 _authcode を使用してデータを暗号化し (デフォルトではキーとして UC_KEY を使用します)、Cookie を関数_setcookie。

6. 各アプリケーションは、対応するキーを使用して上記の Cookie セットをデコードし、ユーザー ID およびその他のデータを取得します。この値を使用して、ユーザーが他のアプリケーションを通じてログインしたかどうかを判断し、ユーザーが自動的にログインできるようにします。アプリケーションの

Logging.php ------>client.php (uc_client の場合)----->Ucenter------>api/uc.php (他のアプリケーションの場合)

実際、同期ログインを実現する Ucenter の原理は Cookie です。アプリケーションがログインに成功すると、データが Ucenter に転送され、Ucenter が他のアプリケーションにも Cookie を設定するように通知します。これにより、ユーザーは Cookie を通じて自動的にログインできるようになります。他のアプリケーションにアクセスするときに設定されています。

一般的な手順は、まず ucenter をインストールし、次に uc_client フォルダーを独自のプロジェクトにコピーして、いくつかのファイルを構成します

client.php は関数ライブラリに相当します

uc.php はコールバック ファイル

config に相当します。 php は設定ファイルです

同期ログインを設定した 2 つのアプリケーションがある場合、アプリケーションにログインして

include './config.inc.php';
include './uc_client/client.php';
$usernames="kyee";
$passwords="123456";
list($uid, $username, $password, $email) = uc_user_login($usernames, $passwords);
if($uid > 0) {
setcookie("username",$username,time()+intval(24*3600));
echo uc_user_synlogin($uid);
echo '登录成功';
} elseif($uid == -1) {
echo '用户不存在,或者被删除';
} elseif($uid == -2) {
echo '密码错误';
} else {
echo '未定义';
}

uc_user_synlogin() を実行すると、この関数は、同期ログイン uc 自体を有効にする他のすべての関数への同期ログインを表します。バックグラウンドで同期ログインを有効にするすべてのアプリケーションをループし、これと同様の

<script type="text/javascript" src="http://rayibeauty.ck101.com/api/uc.php?time=1408327309&code=bc6bFLa6WH343nin2GAn%2F82Y9cnCennPk1gcLGYHdQF4wsXsOSdTyqBb2Nuoxe0UJqzWMWncdx%2FfQ1GK6FS%2BqJqi2AxVG2Oq1pD9c1wZy%2BgjXs7qo4mm2sxFVHwW7JnjKGPDkVdDqtYeybkSISz7yrdb0ZFuXH2yr3Cq" reload="1"></script>
<script type="text/javascript" src="http://kibeauty.ibeauty.tw/api/uc.php?time=1408327309&code=206flCqeb%2Faft%2FDFPno9Bvqsb1b0o6XTZdIByOoD7EC11vMrjzC7PaKLo0LF3tGiHwlwZkwdW5VDHq866MGulsco5nekfkL341VWp7BPabnZPNtgG7m4jZpfdx6nVP0LTJLYI%2BkebI7uLm58atk8Ex4sKBj%2FfDkjH%2F8z" reload="1"></script>

js コードをページに出力します。このコードは、同期ログインを有効にする各アプリケーション、さらに同期ログインを有効にする各アプリケーションに送信されます。 uc.php ファイルは受信後に復号されます。uc.php コールバック ファイルのコードは、独自の形式で記述する必要はありません。コード。

実際、UC の原理は非常に単純です。つまり、アプリケーションはログイン後、バックグラウンドで同期的にログインしているアプリケーションに送信されたコールバック ファイルをポーリングし、コールバック ファイルがユーザー ID を受信した後、それをポーリングします。 Cookie またはセッションを生成し、ログイン モードに入ります。

ucenter メンバーの同期ログイン通信原理のより簡単な分析と関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。