public function registerTmpUser($from = 1, $key = '') { //need to check if registered user exists or not if (empty($key) == false) { //if has key, then check if this key has user or not $tmpFound = $this->getbyKey($from, $key); if (empty($tmpFound) == false) { //if has user info, then return user's information $userid = $tmpFound['userid']; return Windid::load('user.WindidUser')->getUserByUid($userid, WindidUser::FETCH_MAIN); } } Wind::import('SRC:service.user.dm.PwUserInfoDm'); $userDm = new PwUserInfoDm(); $password = substr(md5(rand() . '123456'), 0, 15); //order number: 13 number and 3 random number $currentTimeStamp = strtotime("+0 day"); $prefix = 'tmp'; if ($from == 1) { $prefix = 'web'; } else { if ($from == 2) { $prefix = 'app'; } else { if ($from == 3) { $prefix = 'wx'; } } } $username = $prefix . rand(10, 99) . $currentTimeStamp; $userDm->setUsername($username); $userDm->setPassword($password); $userDm->setRegdate(Pw::getTime()); $userDm->setLastvisit(Pw::getTime()); $userDm->setRegip(Wekit::app()->clientIp); Wind::import('SRV:user.srv.PwRegisterService'); Wind::import('APPS:u.service.helper.PwUserHelper'); Wind::import('SRV:user.validator.PwUserValidator'); Wind::import('Wind:utility.WindValidator'); Wind::import('SRV:user.srv.PwLoginService'); $registerService = new PwRegisterService(); $registerService->setUserDm($userDm); $info = $registerService->register(); $userService = Wekit::load('user.srv.PwUserService'); $userService->updateLastLoginData($info['uid'], Wekit::app()->clientIp); $userService->createIdentity($info['uid'], $password); $dm = new App_Tmpuser_Dm(); $dm->setUserId($info['uid']); $dm->setFrom($from); $dm->setKey($key); $this->add($dm); return $info; }
/** * 执行用户注册 */ public function dorunAction() { $this->setOutput('注册', 'title'); $registerService = new PwRegisterService(); $registerService->setUserDm($this->_getUserDm()); /*[u_regsiter]:插件扩展*/ $this->runHook('c_register', $registerService); if (($info = $registerService->register()) instanceof PwError) { $this->showError($info->getError()); } else { $identity = PwRegisterService::createRegistIdentify($info['uid'], $info['password']); if (1 == Wekit::C('register', 'active.mail')) { $this->forwardAction('u/register/sendActiveEmail', array('_statu' => $identity), true); } else { $this->forwardAction('u/register/welcome', array('_statu' => $identity), true); } } }
/** * 执行第三方授权登录后的注册动作 * */ public function doThirdRegistAction() { //第三方登录注册不校验验证码 /* if(Wekit::load("verify.srv.PwCheckVerifyService")->checkVerify($this->getInput('code')) != true){ $this->showError('USER:verifycode.error','index.php?m=u&c=login'); } */ //post参数中获取用户注册信息、第三方授权获取的信息通过hidden标签保存 $username = $this->getInput('username', 'post'); $password = $this->getInput('password', 'post'); $email = $this->getInput('email', 'post'); $gender = $this->getInput('gender', 'post'); $uid = $this->getInput('uid', 'post'); $type = $this->getInput('type', 'post'); $avatar = $this->getInput('avatar', 'post'); //执行注册 Wind::import('SRC:service.user.dm.PwUserInfoDm'); $userDm = new PwUserInfoDm(); $userDm->setUsername($username); $userDm->setPassword($password); $userDm->setEmail($email); $userDm->setGender($gender); $userDm->setRegdate(Pw::getTime()); $userDm->setLastvisit(Pw::getTime()); $userDm->setRegip(Wind::getComponent('request')->getClientIp()); $userDm->setStatus(0); Wind::import('SRV:user.srv.PwRegisterService'); $registerService = new PwRegisterService(); $registerService->setUserDm($userDm); // [u_regsiter]:插件扩展 $this->runHook('c_register', $registerService); if (($info = $registerService->register()) instanceof PwError) { $this->showError($info->getError()); } // 这里取了lastInsertId,但已经指定了主键的值,所以返回false表示成功。。 if ($this->_getUserOpenAccountDs()->addUser($info['uid'], $uid, $type) == false) { $this->downloadThirdPlatformAvatar($info['uid'], $avatar); } // 以便后面登录用到 $acctRelationData = array('uid' => $info['uid']); //继续登录 $login = new PwLoginService(); $this->runHook('c_login_dorun', $login); Wind::import('SRV:user.srv.PwRegisterService'); $registerService = new PwRegisterService(); $info = $registerService->sysUser($acctRelationData['uid']); if (!$info) { $this->showError('USER:user.syn.error'); } $identity = PwLoginService::createLoginIdentify($info); $identity = base64_encode($identity . '|' . $this->getInput('backurl') . '|' . '0'); $this->forwardRedirect(WindUrlHelper::createUrl('u/login/welcome', array('_statu' => $identity))); }
/** * 在 PHPWind 中注册用户、绑定用户的QQ、并返回新的Uid * @param string $mail * @param string $nick * @param &$error 传引用,如果不为空则发生了错误 * @return int uid */ function register_username($nickname, &$error = false) { !session_id() && session_start(); if (empty($_SESSION['qq_oauth_openid']) || empty($_SESSION['qq_oauth_access_token']) || empty($_SESSION['qq_oauth_figureurl_2'])) { $error = '会话丢失,请重新绑定。'; return; } else { $this->openid = $_SESSION['qq_oauth_openid']; $this->access_token = $_SESSION['qq_oauth_access_token']; } Wind::import('SRV:user.srv.PwRegisterService'); Wind::import('APPS:u.service.helper.PwUserHelper'); Wind::import('SRV:user.validator.PwUserValidator'); Wind::import('Wind:utility.WindValidator'); $registerService = new PwRegisterService(); $UserDM = $this->_UserDMUserName($nickname); $registerService->setUserDm($UserDM); if (($info = $registerService->register()) instanceof PwError) { $error = $info->getError(false); } else { if (!empty($_SESSION['qq_oauth_figureurl_2'])) { $this->restore_avatar($info['uid'], $_SESSION['qq_oauth_figureurl_2']); } return $info['uid']; } }
/** * 执行用户注册 */ public function quickRegisterAction() { $registerService = new PwRegisterService(); $registerService->setUserDm($this->_getUserDm()); /*[u_regsiter]:插件扩展*/ $this->runHook('c_register', $registerService); if (($info = $registerService->register()) instanceof PwError) { $this->showError($info->getError()); } else { Wind::import('SRV:user.srv.PwLoginService'); $service = new PwLoginService(); Windid::load('user.WindidUser'); $info = $service->sysUser($info['uid']); $identity = PwLoginService::createLoginIdentify($info); $identity = base64_encode($identity); $userService = Wekit::load('user.srv.PwUserService'); $userService->createIdentity($info['uid'], $info['password']); $this->forwardRedirect(WindUrlHelper::createUrl('app/4tschool/orderpreview/run', array("message" => $message))); } }
/** * 用户注册信息 * * @return boolean|int */ public function userRegister($username, $password, $email) { if (!trim($username)) { return $this->buildResponse(USER_INVALID_USERNAME); } if (!$password || !$email || WindValidator::isEmail($email) !== true) { return $this->buildResponse(USER_INVALID_PARAMS); } Wind::import('SRV:user.srv.PwRegisterService'); Wind::import('SRC:service.user.dm.PwUserInfoDm'); $userDm = new PwUserInfoDm(); $userDm->setUsername($username); $userDm->setPassword($password); $userDm->setEmail($email); $userDm->setRegdate(Pw::getTime()); $userDm->setRegip(Wind::getApp()->getRequest()->getClientIp()); $registerService = new PwRegisterService(); $registerService->setUserDm($userDm); $result = $registerService->register(); if ($result instanceof PwError) { return $this->buildResponse(-1, $result->getError()); } return $this->buildResponse(0, $result); }
public function mobileLoginAction() { //simulate data $test = array("openid" => "7E561C40E3443EC7A473DB7D6767419A", "gender" => "男", "avatar" => "http://qzapp.qlogo.cn/qzapp/100505782/7E561C40E3443EC7A473DB7D6767419A/100", "nickname" => "良品-身边", "access_token" => "602E4FD23B479E8832D39AB3DAE7E5A9"); $result = array("Success" => 0, "ErrorMessage" => ""); //$testtr = json_encode($test); //$testtr = '{"openid":"7E561C40E3443EC7A473DB7D6767419A","gender":"\u7537","avatar":"","nickname":"\u826f\u54c1-\u8eab\u8fb9","access_token":"602E4FD23B479E8832D39AB3DAE7E5A9"}'; $qqInfo = $this->getInput("qqinfo"); //urldecode and jsondecode $qqInfo = urldecode($qqInfo); $qqInfo = json_decode($qqInfo); $qqInfo = $this->class_object_to_array($qqInfo); //check data empty if (empty($qqInfo)) { $result['Success'] = 0; $result['ErrorMessage'] = "无效的数据"; $this->output($result); } //1. openid //2. gender //3. avatar //4. nickname //5. access_token $openid = $qqInfo['openid']; $gender = $qqInfo['gender']; $avatar = $qqInfo['avatar']; $nickname = $qqInfo['nickname']; $access_token = $qqInfo['access_token']; if (empty($openid) || empty($nickname) || empty($access_token)) { $result['Success'] = 0; $result['ErrorMessage'] = "资料不全"; $this->output($result); } //check if this openid already has user $qqauth = Wekit::loadDao('SRC:extensions.com_qq_login.service.dao.qq_oauth_dao'); $fetched = $qqauth->getOne($openid); Wind::import('SRV:user.srv.PwRegisterService'); Wind::import('APPS:u.service.helper.PwUserHelper'); Wind::import('SRV:user.validator.PwUserValidator'); Wind::import('Wind:utility.WindValidator'); //if not registred before if (empty($fetched)) { //register user //need to rand nickname $nickname = $nickname . substr(md5(rand() . $access_token), 0, 6); $registerService = new PwRegisterService(); $UserDM = $this->_UserDMUserName($nickname); $registerService->setUserDm($UserDM); if (($info = $registerService->register()) instanceof PwError) { $error = $info->getError(false); $result['Success'] = 0; $result['ErrorMessage'] = $error; $this->output($result); } else { $uid = $info['uid']; $qqauth->add($uid, $access_token, $nickname, $avatar, $gender, 0, 0, 0, $openid); } } else { $uid = $fetched['uid']; } $result['Success'] = 1; $result['ErrorMessage'] = ""; $result['User'] = $this->getUserInfo($uid); $this->output($result); }
/** * 执行用户注册 */ public function dorunAction() { //new add //验证 $sign = $this->getInput('sign', 'get'); $sessionId = Pw::getCookie($this->_getLoginSessionService()->getCookieName()); $sessionInfo = App_Account_LoginSessionBo::getInstance($sessionId)->getSession(); $sessionData = $sessionInfo['sessiondata']; $app_uid = $sessionData['data']['user_id']; $type = $sessionData['type']; if (!$sessionId || !$this->_getAccountTypeService()->checkType($type) || $sessionData['data']['sign'] != $sign || !$app_uid) { $this->showError("非法访问"); } $this->setOutput('注册', 'title'); $registerService = new PwRegisterService(); $registerService->setUserDm($this->_getUserDm()); /*[u_regsiter]:插件扩展*/ $this->runHook('c_register', $registerService); if (($info = $registerService->register()) instanceof PwError) { $this->showError($info->getError()); } else { $identity = PwRegisterService::createRegistIdentify($info['uid'], $info['password']); //绑定 new add Wekit::load('EXT:account.service.srv.App_Account_BindService')->bind($info['uid'], $app_uid, $type); if (1 == Wekit::C('register', 'active.mail')) { $this->forwardAction('u/register/sendActiveEmail', array('_statu' => $identity), true); } else { $this->forwardAction('u/register/welcome', array('_statu' => $identity), true); } } }
/** * 生成UserDM对象 * @param string $mail * @param string $nick * @return object UserDM */ private function _registerTmpUser() { Wind::import('SRC:service.user.dm.PwUserInfoDm'); $userDm = new PwUserInfoDm(); $password = substr(md5(rand() . '123456'), 0, 15); //order number: 13 number and 3 random number $currentTimeStamp = strtotime("+0 day"); $username = '******' . rand(10, 99) . $currentTimeStamp; $userDm->setUsername($username); $userDm->setPassword($password); $userDm->setRegdate(Pw::getTime()); $userDm->setLastvisit(Pw::getTime()); $userDm->setRegip(Wekit::app()->clientIp); Wind::import('SRV:user.srv.PwRegisterService'); Wind::import('APPS:u.service.helper.PwUserHelper'); Wind::import('SRV:user.validator.PwUserValidator'); Wind::import('Wind:utility.WindValidator'); Wind::import('SRV:user.srv.PwLoginService'); $registerService = new PwRegisterService(); $registerService->setUserDm($userDm); $info = $registerService->register(); $userService = Wekit::load('user.srv.PwUserService'); $userService->updateLastLoginData($info['uid'], Wekit::app()->clientIp); $userService->createIdentity($info['uid'], $password); return $info; }
/** * 开放帐号注册到本系统内 * * @access public * @return void * @example <pre> os可以是android或者ios <br> post: access_token&platformname&native_name&username&email&sex </pre> */ public function openAccountRegisterAction() { // if($this->_getUserOpenAccountDs()->addUser(56,56,56)==false){ // if(true){ // echo "true"; // $this->downloadThirdPlatformAvatar(59,"http://q.qlogo.cn/qqapp/1104230675/A773C383D93AAF2986157BA34965A5CD/100"); // }else{ // echo "false"; // } // exit; $accountData = $this->authThirdPlatform(); // list($username, $email, $sex) = $this->getInput(array('username', 'email', 'sex')); //随机密码 $password = substr(str_shuffle('abcdefghigklmnopqrstuvwxyz1234567890~!@#$%^&*()'), 0, 7); // Wind::import('SRC:service.user.dm.PwUserInfoDm'); $userDm = new PwUserInfoDm(); $userDm->setUsername($username); $userDm->setPassword($password); $userDm->setEmail($email); $userDm->setGender($sex); $userDm->setRegdate(Pw::getTime()); $userDm->setLastvisit(Pw::getTime()); $userDm->setRegip(Wind::getComponent('request')->getClientIp()); // $registerService = new PwRegisterService(); $registerService->setUserDm($userDm); /*[u_regsiter]:插件扩展*/ $this->runHook('c_register', $registerService); if (($info = $registerService->register()) instanceof PwError) { $this->showError($info->getError()); } else { // 这里注册成功,要把第三方帐号的头像下载下来并处理 // 这里取了lastInsertId,但已经指定了主键的值,所以返回false表示成功 if ($this->_getUserOpenAccountDs()->addUser($info['uid'], $accountData['uid'], $accountData['type']) == false) { $this->downloadThirdPlatformAvatar($info['uid'], $accountData['avatar']); $laiwangOK = PwLaiWangSerivce::registerUser($info['uid'], $info['username'], $info['password'], Pw::getAvatar($info['uid'], 'big'), $accountData['gender']); // 重置uid $this->uid = $info['uid']; $userdata = $this->_getUserInfo($laiwangOK); $this->setOutput($userdata, 'data'); $this->showMessage('USER:register.success'); } } }