public function synlogin($get, $post) { if (!API_SYNLOGIN) { return API_RETURN_FORBIDDEN; } header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"'); $uc_uid = $get['uid']; $uc_uname = uc_auto_charset($get['username']); $uc_password = $get['password']; $uc_user_ref = ts_get_ucenter_user_ref('', $uc_uid); $user = ts_get_user($uc_user_ref['uid']); if ($user) { //检查是否激活,未激活用户不自动登录 if ($user['is_active'] == 0) { exit; } if ($uc_uname != $uc_user_ref['uc_username']) { ts_update_ucenter_user_ref($uc_user_ref['uid'], $uc_uid, $uc_uname); } //登录到TS系统 $user['login_from_dz'] = true; $result = ts_synclogin($user); } }
/** * uc登陆或者注册。返回数组 * $result['user'] 用户信息。用于ts系统使用 * $result['login'] 同步登陆是否成功 * @param unknown_type $username * @param unknown_type $password */ public function ucLogin($username, $password) { if (isValidEmail($username)) { $user = service('Passport')->getLocalUser($username, $password); if (UC_SYNC && $user['uid']) { $uc_user_ref = ts_get_ucenter_user_ref($user['uid']); if ($uc_user_ref['uc_uid']) { $uc_user = uc_user_login($uc_user_ref['uc_uid'], $password, 1); if ($uc_user[0] == -1 || $uc_user[0] == -2) { $uc_user_ref = array(); } } else { if ($user['uname']) { $res_checkname = uc_user_checkname($user['uname']); if ($res_checkname >= -3 && $res_checkname <= -1) { $error_param = L('username'); } $res_checkemail = uc_user_checkemail($username); if ($res_checkemail >= -6 && $res_checkemail <= -4) { $error_param = $error_param ? $error_param . L('and_email') : 'Email'; } if ($error_param) { $message_data['title'] = L('sync_ucenter') . $error_param . L('sign_in_failed'); $message_data['content'] = L('you_of_site') . $error_param . L('ucenter_sign_in_failed') . $error_param . L('ucenter_clash') . U('home/Account/security') . L('ucenter_reset') . $error_param . '。'; $message_data['to'] = $user['uid']; model('Message')->postMessage($message_data, M('user')->getField('uid', 'admin_level=1')); } else { $uc_uid = uc_user_register($user['uname'], $password, $username); ts_add_ucenter_user_ref($user['uid'], $uc_uid, $user['uname']); $uc_user[0] = $uc_uid; } } } } } else { if (UC_SYNC) { $uc_user = uc_user_login($username, $password); if ($uc_user[0] > 0) { $uc_user_ref = ts_get_ucenter_user_ref('', $uc_user[0]); if (!$uc_user_ref) { // 注册 if ($this->isValidEmail($uc_user['3']) && $this->isEmailAvailable($uc_user['3'])) { $user['email'] = $uc_user['3']; } else { $message_data['title'] = L('ucenter_sync_email_clash'); $message_data['content'] = L('ucenter_email_used') . U('home/Account/bind') . L('ucenter_reset_email'); } if (isLegalUsername($uc_user['1']) && !M('user')->where("uname='{$uc_user['1']}'")->count()) { $user['uname'] = $uc_user['1']; } $user['password'] = md5($uc_user['2']); $user['ctime'] = time(); $user['is_active'] = 1; $user['uid'] = M('user')->add($user); if ($user['uid']) { $reg_from_ucenter = 1; ts_add_ucenter_user_ref($user['uid'], $uc_user['0'], $uc_user['1']); // 将用户添加到myop_userlog,以使漫游应用能获取到用户信息 $userlog = array('uid' => $user['uid'], 'action' => 'add', 'type' => '0', 'dateline' => time()); M('myop_userlog')->add($userlog); if (isset($message_data) && !empty($message_data)) { $message_data['to'] = $user['uid']; model('Message')->postMessage($message_data, M('user')->getField('uid', 'admin_level=1')); } //关联操作 //$this->registerRelation($user['uid']); } else { $user = array(); } } else { if ($username != $uc_user_ref['uc_username']) { ts_update_ucenter_user_ref('', $uc_user_ref['uc_uid'], $username); } $user = M('user')->where("uid={$uc_user_ref['uid']}")->find(); if (md5($password) != $user['password']) { M('user')->where("uid={$uc_user_ref['uid']}")->setField('password', md5($password)); } } } } else { $uc_user_ref = ts_get_ucenter_user_ref('', '', $username); if ($uc_user_ref['uid']) { $user = service('Passport')->getLocalUser($uc_user_ref['uid'], $password); } } } $result['login'] = ''; if ($user) { $result['login'] = UC_SYNC && $uc_user[0] ? uc_user_synlogin($uc_user[0]) : ''; } $result['user'] = $user; $result['reg_from_ucenter'] = $reg_from_ucenter; return $result; }
function synlogin($get, $post) { if (!API_SYNLOGIN) { return API_RETURN_FORBIDDEN; } header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"'); $uc_uid = $get['uid']; $uc_uname = uc_auto_charset($get['username']); $uc_user_ref = ts_get_ucenter_user_ref('', $uc_uid); $user = M('user')->where("uid={$uc_user_ref['uid']}")->find(); if ($user) { //检查是否激活,未激活用户不自动登录 if ($user['is_active'] == 0) { exit; } if ($uc_uname != $uc_user_ref['uc_username']) { ts_update_ucenter_user_ref($uc_user_ref['uid'], $uc_uid, $uc_uname); } //登录到TS系统 session_start(); $result = service('Passport')->registerLogin($user); //由于UC登录没有发送记住登录的状态过来,所以暂时关闭此代码 //成功登录后,设置Cookie //$remember ? //cookie('LOGGED_USER',jiami('thinksns.'.$user['uid']),(3600*24*365)) //: /*cookie('LOGGED_USER',jiami('thinksns.'.$user['uid']),(3600*2))*/ } }