关于ucenter实现同步登录的机制

 

echo uc_user_synlogin($uid)---------->登录信息------->远程ucter地址---返回输出内容:

 

$synstr .= '<script type="text/javascript" src="'.$app['url'].'/api/'.$app

 

['apifilename'].'?time='.$this->time.'&code='.urlencode($this->authcode('action=synlogin&username='.$this->user

 

['username'].'&uid='.$this->user['uid'].'&password='.$this->user['password']."&time=".$this->time, 'ENCODE', $app

 

['authkey'])).'" reload="1"></script>';

 

在ucenter当中$app['apifilename'].默认为uc.php这也是为什么这个文件都要放在api文件夹下了,这个时候如果你要与ucenter当中的其他应用同步登录,就需要你对uc.php进行编码了,一般只要对ucenter服务端的参数进行解码之后,再与你当前所需要的应用在登录时的cookie或是session一致就可以了。

 

 

举个例子吧:

就比如我从discuz这个应用登录后,登录信息将会传递到ucenter服务端,此时ucenter服务端会对当前ucenter当中的所有应用进行javascript的内容的连接

foreach($this->cache['apps'] as $appid => $app) {

  if($app['synlogin'] && $app['appid'] != $this->app['appid']) {

        $synstr .= '<script type="text/javascript" src="'.$app['url'].'/api/'.$app['apifilename'].'

        ?time='.$this->time.'&code='.urlencode($this->authcode('action=synlogin&username='.

        $this->user['username'].'&uid='.$this->user['uid'].'&password='.$this->user['password']."&time=".$this->time, 'ENCODE',         $app['authkey'])).'" reload="1"></script>';

    }

}

因为当应用与ucenter整合时,同一个帐号在不同应用之中的密码是相同的.

这个时候就是应用中的uc.php发辉作用的时候了,再简单点不是  应用--->ucenter服务-->应用

 

 

如果是自已的程序一定要用ucenter整合的话,我的建议除了uid用户名与密码直接从ucenter从读就可以了,如果不是这种情况,可以在自己写的应用里面,先判断有没有用到ucenter整合,如果有,那就判断ucenter的,没有就判断自己的表当中的用户名与密码,如果修改用户与密码也调用ucenter当中的函数,让密码与ucenter当中的一样,我不知道,像dedecms当中登录时与ucenter整合是不是也是这样的,改天去研究下,再来这边接着写

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值