Exemplo n.º 1
0
 private function _login($res, $username, $password, $mobile, $code, $isValidation)
 {
     global $_G;
     $username = rawurldecode($username);
     $password = rawurldecode($password);
     if ($username == MOBCENT_HACKER_USER && $password == MOBCENT_HACKER_PASSWORD) {
         $token = isset($_GET['accessToken']) ? $_GET['accessToken'] : '';
         $secret = isset($_GET['accessSecret']) ? $_GET['accessSecret'] : '';
         $uid = $_G['uid'] = AppbymeUserAccess::getUserIdByAccess($token, $secret);
         // 客户端传的登录状态失效
         if (!$uid) {
             return $this->makeErrorInfo($res, 'mobcent_login_status');
         }
         $result['member'] = getuserbyuid($uid);
         $_G['username'] = $result['member']['username'];
         // 把登录信息写入cookie中,并且更新登录的状态
         UserUtils::updateCookie($result['member'], $uid);
         // 需要整理token和secret再返回给客户端
         $userInfo = array('token' => $token, 'secret' => $secret);
     } else {
         $username = WebUtils::t($username);
         $logInfo = UserUtils::login($username, $password);
         if ($logInfo['errcode']) {
             UserUtils::delUserAccessByUsername($username);
             return $this->makeErrorInfo($res, $logInfo['message']);
         }
         if ($isValidation == 1) {
             // 是否开启了登录手机验证
             $isLoginValidation = WebUtils::getDzPluginAppbymeAppConfig('mobcent_login_validation');
             if ($isLoginValidation) {
                 $userMobileBind = AppbymeSendsms::getBindInfoByUid($_G['uid']);
                 if (!$userMobileBind) {
                     // 当前登录的用户没有绑定手机号码
                     if ($mobile == '' && $code == '') {
                         $res['isValidation'] = 1;
                         return $this->makeErrorInfo($res, '', array('noError' => 0, 'alert' => 0));
                     }
                     $checkInfo = UserUtils::checkMobileCode($res, $mobile, $code);
                     if ($checkInfo['rs'] == 0) {
                         return $this->makeErrorInfo($res, $checkInfo['errcode']);
                     }
                     $updataArr = array('uid' => $_G['uid']);
                     AppbymeSendsms::updateMobile($mobile, $updataArr);
                 }
             }
         }
         $userInfo = AppbymeUserAccess::loginProcess($_G['uid'], $password);
     }
     $userAvatar = UserUtils::getUserAvatar($_G['uid']);
     $res['isValidation'] = 0;
     $res['token'] = (string) $userInfo['token'];
     $res['secret'] = (string) $userInfo['secret'];
     $res['uid'] = (int) $_G['uid'];
     $res['avatar'] = (string) $userAvatar;
     $res['userName'] = (string) $_G['username'];
     return $res;
 }
Exemplo n.º 2
0
 private function _login($res, $username, $password)
 {
     global $_G;
     $username = rawurldecode($username);
     $password = rawurldecode($password);
     if ($username == MOBCENT_HACKER_USER && $password == MOBCENT_HACKER_PASSWORD) {
         $token = isset($_GET['accessToken']) ? $_GET['accessToken'] : '';
         $secret = isset($_GET['accessSecret']) ? $_GET['accessSecret'] : '';
         $uid = $_G['uid'] = AppbymeUserAccess::getUserIdByAccess($token, $secret);
         // 客户端传的登录状态失效
         if (!$uid) {
             return $this->makeErrorInfo($res, 'mobcent_login_status');
         }
         $result['member'] = getuserbyuid($uid);
         $_G['username'] = $result['member']['username'];
         // 把登录信息写入cookie中,并且更新登录的状态
         UserUtils::updateCookie($result['member'], $uid);
         // 需要整理token和secret再返回给客户端
         $userInfo = array('token' => $token, 'secret' => $secret);
     } else {
         $username = WebUtils::t($username);
         $logInfo = UserUtils::login($username, $password);
         if ($logInfo['errcode']) {
             UserUtils::delUserAccessByUsername($username);
             return $this->makeErrorInfo($res, $logInfo['message']);
         }
         $userInfo = AppbymeUserAccess::loginProcess($_G['uid'], $password);
     }
     $userAvatar = UserUtils::getUserAvatar($_G['uid']);
     $res['token'] = (string) $userInfo['token'];
     $res['secret'] = (string) $userInfo['secret'];
     $res['uid'] = (int) $_G['uid'];
     $res['avatar'] = (string) $userAvatar;
     $res['userName'] = (string) $_G['username'];
     return $res;
 }
 private function _wxInfo($res, $openId, $oauthToken, $platformId)
 {
     $wxLogin = AppbymeConnection::getMobcentWxinfoByOpenId($openId);
     if ($wxLogin) {
         $member = getuserbyuid($wxLogin['uid']);
         UserUtils::updateCookie($member, $member['uid']);
         $userAccess = AppbymeUserAccess::loginProcess($member['uid'], $this->password);
         $res['body']['register'] = 0;
         $res['body']['uid'] = (int) $member['uid'];
         $res['body']['userName'] = (string) $member['username'];
         $res['body']['avatar'] = (string) UserUtils::getUserAvatar($member['uid']);
         $res['body']['token'] = (string) $userAccess['token'];
         $res['body']['secret'] = (string) $userAccess['secret'];
     } else {
         // 检查是否有微信登陆的插件
         $isWechat = AppbymeConnection::isWechat();
         if ($isWechat) {
             $dzWxLogin = AppbymeConnection::getWXinfoByOpenId($openId);
             if (!empty($dzWxLogin)) {
                 $member = getuserbyuid($dzWxLogin['uid']);
                 UserUtils::updateCookie($member, $member['uid']);
                 $data = array('uid' => $uid, 'openid' => $openId, 'status' => 1, 'type' => 1);
                 AppbymeConnection::insertMobcentWx($data);
                 $userAccess = AppbymeUserAccess::loginProcess($member['uid'], $this->password);
                 $res['body']['register'] = 0;
                 $res['body']['uid'] = (int) $member['uid'];
                 $res['body']['userName'] = (string) $member['username'];
                 $res['body']['avatar'] = (string) UserUtils::getUserAvatar($member['uid']);
                 $res['body']['token'] = (string) $userAccess['token'];
                 $res['body']['secret'] = (string) $userAccess['secret'];
             } else {
                 $res['body']['register'] = 1;
                 $res['body']['openId'] = (string) $openId;
                 $res['body']['oauthToken'] = (string) $oauthToken;
                 $res['body']['platformId'] = (int) $platformId;
             }
         } else {
             // 低版本的discuz!或者是没有装微信插件
             $res['body']['register'] = 1;
             $res['body']['openId'] = (string) $openId;
             $res['body']['oauthToken'] = (string) $oauthToken;
             $res['body']['platformId'] = (int) $platformId;
         }
     }
     return $res;
 }