public function logout() { //调用退出登录的API D('Member')->logout(); $html = ''; if (UC_SYNC && is_login() != 1) { // include_once './api/uc_client/client.php'; $Ucenter = new \Common\Model\UcenterModel(); $html = $Ucenter->uc_user_synlogout(); } $oc_config = (include_once './OcApi/oc_config.php'); if ($oc_config['SSO_SWITCH']) { include_once './OcApi/OCenter/OCenter.php'; $OCApi = new \OCApi(); $html .= $OCApi->ocSynLogout(); } exit(json_encode(array('message' => '退出登陆成功。', 'url' => U('Home/Index/index'), 'html' => $html))); //显示页面 //$this->success($result['message'], U('Home/Index/index')); }
public function doLogin() { $aUsername = $username = I('post.username', '', 'op_t'); $aPassword = I('post.password', '', 'op_t'); $aVerify = I('post.verify', '', 'op_t'); $aRemember = I('post.remember', 0, 'intval'); /* 检测验证码 */ if (check_verify_open('login')) { if (!check_verify($aVerify)) { $res['info'] = "验证码输入错误。"; return $res; } } /* 调用UC登录接口登录 */ check_username($aUsername, $email, $mobile, $aUnType); if (!check_reg_type($aUnType)) { $res['info'] = "该类型未开放登录。"; } $uid = UCenterMember()->login($username, $aPassword, $aUnType); if (0 < $uid) { //UC登录成功 /* 登录用户 */ $Member = D('Common/Member'); $args['uid'] = $uid; $args = array('uid' => $uid, 'nickname' => $username); check_and_add($args); if ($Member->login($uid, $aRemember == 1)) { //登录用户 //TODO:跳转到登录前页面 if (UC_SYNC && $uid != 1) { //同步登录到UCenter $ref = M('ucenter_user_link')->where(array('uid' => $uid))->find(); $html = ''; $Ucenter = new \Common\Model\UcenterModel(); list($uid, $username, $password, $email) = $Ucenter->uc_user_login($username, $aPassword); $html = $Ucenter->uc_user_synlogin($uid); if ($uid > 0) { $res['tips'] = '登录成功'; } elseif ($uid == -1) { $res['tips'] = '用户不存在,或者被删除'; } elseif ($uid == -2) { $res['tips'] = '密码错'; } else { $res['tips'] = '未定义'; } } $oc_config = (include_once './OcApi/oc_config.php'); if ($oc_config['SSO_SWITCH']) { include_once './OcApi/OCenter/OCenter.php'; $OCApi = new \OCApi(); $html .= $OCApi->ocSynLogin($uid); } $res['status'] = 1; $res['info'] = $html; //$this->success($html, get_nav_url(C('AFTER_LOGIN_JUMP_URL'))); } else { $res['info'] = $Member->getError(); } } else { //登录失败 switch ($uid) { case -1: $res['info'] = '用户不存在或被禁用!'; break; //系统级别禁用 //系统级别禁用 case -2: $res['info'] = '密码错误!'; break; default: $res['info'] = $uid; break; // 0-接口参数错误(调试阶段使用) } } return $res; }
public function ucmailLogin($username, $password) { // include_once './api/uc_client/client.php'; //Ucenter 内数据 $Ucenter = new \Common\Model\UcenterModel(); $uc_user = $Ucenter->uc_user_login($username, $password); //第三个参数加不加无所谓方法中自动判断 //关联表内数据 $uc_user_ref = tox_get_ucenter_user_ref('', $uc_user['0'], ''); //根据ucenter表中的uid找关联表中有没有数据 //检测关联表数据完整度 if ($uc_user_ref['uid'] && $uc_user_ref['uc_uid'] && $uc_user[0] > 0) { return $uc_user_ref['uid']; //关联表有完整关联的uctoo数据就返回本地uid不用后续注册过程 } //本地帐号信息 $tox_user = $this->getLocal_byEmail($username, $password); // 关联表无、UC有、本地无的 if ($uc_user[0] > 0 && !$tox_user['id']) { $uid = $this->register($uc_user[1], $uc_user[1], $uc_user[2], $uc_user[3], '', 2); if ($uid <= 0) { return A('Home/User')->showRegError($uid); } $result = tox_add_ucenter_user_ref($uid, $uc_user[0], $uc_user[1], $uc_user[3]); if (!$result) { return '用户不存在或密码错误'; } return $uid; } // 关联表无、UC有、本地有的 if ($uc_user[0] > 0 && $tox_user['id'] > 0) { $result = tox_add_ucenter_user_ref($tox_user['id'], $uc_user[0], $uc_user[1], $uc_user[3]); if (!$result) { return '用户不存在或密码错误'; } return $tox_user['id']; } // 关联表无、UC无、本地有 if ($uc_user[0] < 0 && $tox_user['id'] > 0) { //写入UC if (empty($tox_user['username'])) { //如果uctoo帐号是用email注册的初始用户名会为空,注册ucenter时默认用邮箱@之前的部分做用户名 $tox_user['username'] = strstr($tox_user['email'], '@', TRUE); } $uc_uid = $Ucenter->uc_user_register($tox_user['username'], $password, $tox_user['email'], '', '', get_client_ip()); if ($uc_uid <= 0) { return 'UC帐号注册失败,请联系管理员'; } //写入关联表 if (M('ucenter_user_link')->where(array('uid' => $tox_user['id']))->find()) { $result = tox_update_ucenter_user_ref($tox_user['id'], $uc_uid, $tox_user['username'], $tox_user['email']); } else { $result = tox_add_ucenter_user_ref($tox_user['id'], $uc_uid, $tox_user['username'], $tox_user['email']); } if (!$result) { return '用户不存在或密码错误'; } return $tox_user['id']; } //关联表无、UC无、本地无的 return '密码错误或用户不存在'; }