/** * 获取融云token * @see <*****@*****.**> * http://jira.chuangyejia.com:8090/pages/viewpage.action?pageId=3412605 * @param $uid int 用户ID * * @return json */ public function actionGettoken() { $uid = Yii::$app->getRequest()->get('uid'); $uid = intval($uid); if ($uid) { $userinfo = UserBaseInfo::findOne($uid); $userinfo->username = $userinfo->username ? $userinfo->username : $userinfo->id; $userinfo->avatar = $userinfo->avatar ? $userinfo->avatar : 'http://www.idaiyan.cnuploads/20151023/s70_2015102318482010000.jpg'; if ($userinfo->id && $userinfo->username && $userinfo->avatar) { $result = Yii::$app->rongyun->getToken($userinfo->id, $userinfo->username, $userinfo->avatar); $res = json_decode($result, true); if ($res['code'] == '200') { //$return = array('status' => '0', 'msg' => 'success', 'data' => ['token' => $res['token'], 'uid' => $userinfo->id ]); $return = Yii::$app->util->responseArray('0', 'success', '成功', ['token' => $res['token'], 'uid' => $userinfo->id]); } else { //$return = array('status' => '4101', 'msg' => 'rongyun_result_error'); $return = Yii::$app->util->responseArray('4101', 'rongyun_result_error', '失败'); } } else { //$return = array('status' => '1102', 'msg' => 'userinfo_error'); $return = Yii::$app->util->responseArray('1102', 'userinfo_error', '用户信息有误!'); } } else { //$return = array('status' => '1101', 'msg' => 'params_uid_error'); $return = Yii::$app->util->responseArray('1101', 'params_uid_error', '参数有误!'); } return $return; }
/** * 注册功能 * * @param Array $user * ~ * $user = [ * 'mobile' => '', * 'password' => '', * 'reg_channel' => '', * 'reg_ip' => '' * ] * ~ * * @return array */ public function register($user) { if (isset($user['_format'])) { unset($user['_format']); } $mobile = isset($user['mobile']) ? $user['mobile'] : ''; if (!$mobile) { return responseArray(1101, 'mobile_params_missing', '手机号不能为空'); } if (!\Yii::$app->util->regularMobile($mobile)) { return responseArray(2101, 'mobile_format_error', '手机号码格式有误'); } $userInfo = new UserBaseInfo(); $count = $userInfo->uniqueUser($mobile); if ($count > 0) { return responseArray(1103, 'mobile_been_registered', '手机已被注册'); } $password = isset($user['password']) ? $user['password'] : ''; if (!$password) { return responseArray(1102, 'password_params_missing', '密码不能为空'); } // 正则匹配 密码格式 $preg = "/((?=.*\\d)(?=.*\\D)|(?=.*[a-zA-Z])(?=.*[^a-zA-Z]))^.{8,16}\$/"; $space = "/\\s/"; $numSpace = preg_match($space, $password); $num = preg_match($preg, $password); if (!$num) { return responseArray(2102, 'password_format_wrong', '密码格式有误'); } if ($numSpace) { return responseArray(2103, 'password_not_contain_space', '密码不允许包含空格'); } $reg_channel = isset($user['reg_channel']) ? $user['reg_channel'] : ''; if (!$reg_channel) { return responseArray(1103, 'channel_params_missing', '注册渠道不能为空'); } $reg_ip = isset($user['reg_ip']) ? $user['reg_ip'] : ''; if (!$reg_ip) { return responseArray(1104, 'ip_params_missing', '注册IP不能为空'); } $user['open_id'] = openId(); $userInfo = new UserBaseInfo(); $userId = $userInfo->register($user); if ($userId) { $registerUser = UserBaseInfo::findOne($userId); // TODO:: 通知其他应用系统 $ret = $this->generateToken(); $ret['username'] = $registerUser->username; $ret['open_id'] = $registerUser->open_id; $ret['mobile'] = $registerUser->mobile; $ret['password'] = $registerUser->password; $ret['password_salt'] = $registerUser->password_salt; return responseArray(0, 'success', '注册成功', $ret); } else { return responseArray(1, 'network_anomaly', '网络异常,请稍后重试'); } }