Heim  >  Artikel  >  Backend-Entwicklung  >  ucenter 通信原理,ucenter_PHP教程

ucenter 通信原理,ucenter_PHP教程

WBOY
WBOYOriginal
2016-07-13 10:20:151024Durchsuche

ucenter 通信原理,ucenter

 

1、用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证。

2、如果验证成功,将调用位于uc_client下client.php文件中的函数uc_user_synlogin,在这个函数中调用 uc_api_post('user', 'synlogin', array('uid'=>$uid))。

3、然后这个函数后向Ucenter的index.php传递数据,index.php接受传递的数据,获得model为user,action为synlogin的值。

4、然后Ucenter的index.php调用control目录下的user.php类中的onsynlogin方法,通过foreach循环,以javascript的方式通知uc应用列表中开启同步登陆的应用进行同步登录;即通过get方式传递给各个应用目录中api下的uc.php一些数据。

5、uc.php接收通知并处理get过来的数据,并在函数synlogin(位于uc.php中)通过函数_authcode加密数据(默认以UC_KEY作为密钥),用函数_setcookie设置cookie。

6、各个应用用对应的密钥解码上面设置的cookie,得到用户id等数据;通过这个值来判断用户是否经过其它应用登录过,从而让用户可以自动登陆。

应用程序的logging.php ------>uc_client中的client.php------>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自己会在后台把所有开启同步登陆的应用都给循环遍历一遍 然后 在页面上输出  


类似这种的js代码 ,就是发送给每个开启同步登陆的应用, 然后每个开启同步登陆的应用的回调文件 uc.php 接受到后会进行解密,解密好后其实你就可以自己来写代码了,这个uc.php回调文件的代码不一定非要按照他们的格式来写 ,你也可以自己写你自己的代码 。


其实UC的原理很简单 ,就是某个应用登陆后,然后后台轮询发送给同步登陆的应用的回调文件 ,回调文件接收到用户ID之后,生成cookie或者session然后进入登陆模式。

 

UCenter用户管理中心添加天天团购、记事狗微博的时为何老显示“通信失败”到底怎解决?高分答案

Ucenter通信原理
wenku.baidu.com/...1.html
 

本人是二本的通信工程专业,教非官方回答 学习通信原理的目的是什? 在什工作中的会起作用?

我也是二本通信的。
大学学通信不仅是选择自己的专业,还是选择自己的职业。既然选择了它,真的真的就要全心学好。工作时找对口工作。现在没兴趣的话就要尽快培养兴趣。通信可以说永远丢失朝阳产业,所以只要你学好了,不怕找不到好工作!
本科课程很多,每个学校也都不一样。但是主要的几门基础课肯定是会有的。《模电》《数点》《信号系统》《通信原理》。特别是信号,是通信的理论基础,一定一定要学好。其实说白了,也就是数学要学好。不管将来你要考研还是找工作,数学学好了绝对不会吃亏。特别是考研时特有用。哎,感慨一下。想增加学习通信的动力有很多,首先看看进入通信行业的工作有3年以上的工资都很高。而且外人看来很深奥的呢看来很简单,会很有成就感。直接的动力是你可以上通信之类的大网站论坛看看,或者看看比如《大话通信》之类的入门书籍。
希望这些信息对你有用。
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/868763.htmlTechArticleucenter 通信原理,ucenter 1、用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn