uc同步登录同步退出

几乎每一个应用在整合UC的时候都会遇到没法同步登录同步退出的状况,今天分析下缘由php

首先咱们的项目会将uc_client这个文件夹原封不动的拷贝到项目根目录,api

public function inteLogin($loginname,$password) {
$this->_initUC();
if (true === $this->uc_Integration) {
if (true === XValid::isEmail($loginname)) {
$logintype = 2;
}
else {
$logintype = 0;
}
if (UC_CHARSET != OESOFT_CHARSET) {
$uc_loginname = XHandle::utfToGbk($loginname);
}
else {
$uc_loginname = $loginname;
}
$this->ucinfo = uc_user_login($uc_loginname,$password,$logintype,0);
if ($this->ucinfo[0] >0) {
//同步登录
//print_r($this->ucinfo);
echo uc_user_synlogin($this->ucinfo[0]);数组

//以下是登录本系统的逻辑
$this->_loginUcToLove($password);
}
}
}
我只截取了一段代码,代码是先调用client.php的uc_user_login方法,而后判断返回的uid是否存在,存在的话就echo uc_user_synlogin($this->ucinfo[0]);这样就实现了同步登录。可是你也许会遇到一个问题,就是仍是没法同步登录,咱们看代码app

function uc_user_synlogin($uid) {
    $uid = intval($uid);
    if(@include  UC_ROOT.'./data/cache/apps.php') {
        if(count($_CACHE['apps']) > 1) {
            $return = uc_api_post('user', 'synlogin', array('uid'=>$uid));
        } else {
            $return = '';
        }
    }
    return $return;
}post

发现count($_CACHE['apps']) > 1,也就是在apps.php中的apps数组必须大于1才会调佣,不然不调用,这里咱们须要注意的是你的应用里面若是是在创建以前拷贝的uc_client代码,则这个不会大于1,不要紧,咱们拷贝过去就好了。apps.phpui

同步退出也是同理的,由于他这个是发送js实现同步退出,所以this

public function inteLogout() {
$this->_initUC();
if (true === $this->uc_Integration) {
echo uc_user_synlogout();
}
}spa

也要记得上面是echo,而不是Return.net



咱们在作应用开发的时候,包含了两个文件,一个固然是配置文件了,无论你是在后台填写的仍是直接写到文件中的,包含进来就好了,而后就是client.php,client.php是处理程式。ci

本文档的代码引用的action.passport.php以及model.uc.php中的代码如需完整的,打开他们来看下就知道了

相关文章
相关标签/搜索