Ucenter 会员同步登录通讯原理【OK】
1,用户登录 bbs,通过 logging.php 文件中,使用函数 uc_user_login 验证,如果验证成功,将调
用函数 uc_user_synlogin(位于 _client 下的 client.php 文件中),在这个函数中调用 uc_api_post('user',
'synlogin', array('uid'=>$uid));之后向 _API.'/index.php'传递了数据;这里的 _API 就是在 config.inc.php 中
的定义的 uc_server 之 URL 地址
2, uc_server 的 index.php 接受参数数据,获得 model 为 user,action 为 synlogin,就调用 control
目录下的 user.php 类中的 onsynlogin 方法,通过 foreach 循环,以 javascript 的方式通知 应用列表中的应
用同步登录;即通过 get 方式传递给应用目录中 api 下的 uc.php 一些数据;
3 , uc.php 接收通知 并 处 理 get 过 来的数据 , 并 在 函 数 synlogin (位于 .php 中)通过 函 数
_authcode 加密数据(默认以 _KEY 作为密钥),用函数_setcookie 设置 cookie;
4,各个应用在适当的文件中用对应的密钥解码上面设置的 cookie,得到用户 id 等数据;通过这个
值来判断用户是否经过其它应用登录过;
以 discuz 举例:
一、用户登录检查与用户登录验证 logging.php
在 bbs 的 logging.php 中如下代码段
} elseif($action == 'login') {
if($discuz_uid) {
$ synlogin = '';
showmessage('login_s ceed', $indexname);
评论0
最新资源