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中的代碼如需完整的,打開他們來看下就知道了

相關文章
相關標籤/搜索