|
@@ -7,77 +7,77 @@
|
|
|
|
|
|
defined('InShopNC') or exit('Access Invalid!');
|
|
|
|
|
|
-require_once (BASE_DATA_PATH . '/model/member.model.php');
|
|
|
-require_once (BASE_CORE_PATH . '/framework/libraries/sms.php');
|
|
|
-require_once (BASE_CORE_PATH . '/framework/function/core.php');
|
|
|
+require_once(BASE_DATA_PATH . '/model/member.model.php');
|
|
|
+require_once(BASE_CORE_PATH . '/framework/libraries/sms.php');
|
|
|
+require_once(BASE_CORE_PATH . '/framework/function/core.php');
|
|
|
|
|
|
-class loginControl extends mobileHomeControl
|
|
|
+class loginControl extends mobileHomeControl
|
|
|
{
|
|
|
const token_expire = 600;
|
|
|
const code_expire = 5;
|
|
|
|
|
|
- public function __construct() {
|
|
|
- parent::__construct();
|
|
|
- }
|
|
|
- /**
|
|
|
- * 登录
|
|
|
- */
|
|
|
- public function indexOp()
|
|
|
+ public function __construct()
|
|
|
{
|
|
|
- if(!in_array($_POST['client'], $this->client_type_array)) {
|
|
|
+ parent::__construct();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 登录
|
|
|
+ */
|
|
|
+ public function indexOp()
|
|
|
+ {
|
|
|
+ if (!in_array($_POST['client'], $this->client_type_array)) {
|
|
|
return joutput_error(errcode::ErrApptype);
|
|
|
}
|
|
|
-
|
|
|
- $type = trim($_POST['type']);
|
|
|
- if(!isset($type) || !in_array($type, $this->client_login_type_array)) {
|
|
|
- return joutput_error(errcode::ErrParamter,'type error.');
|
|
|
+
|
|
|
+ $type = trim($_POST['type']);
|
|
|
+ if (!isset($type) || !in_array($type, $this->client_login_type_array)) {
|
|
|
+ return joutput_error(errcode::ErrParamter, 'type error.');
|
|
|
}
|
|
|
|
|
|
- $validate = new Validate();
|
|
|
- if($type == memberModel::mobile_login) {
|
|
|
+ $validate = new Validate();
|
|
|
+ if ($type == memberModel::mobile_login) {
|
|
|
$openid = trim($_POST['mobile']);
|
|
|
$password = trim($_POST['password']);
|
|
|
$validate->setValidate(Validate::verify_mobile($openid));
|
|
|
- $validate->setValidate(Validate::verify_password($password));
|
|
|
+ $validate->setValidate(Validate::verify_password($password));
|
|
|
} else {
|
|
|
$openid = trim($_POST['openid']);
|
|
|
$validate->setValidate(Validate::verify_openid($openid));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$error = $validate->validate();
|
|
|
- if($error != '') {
|
|
|
+ if ($error != '') {
|
|
|
return joutput_error(errcode::ErrParamter, $error);
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
$model_member = Model('member');
|
|
|
- $userid = $model_member->getMemberID($openid,$type,$password);
|
|
|
+ $userid = $model_member->getMemberID($openid, $type, $password);
|
|
|
|
|
|
- if($userid == -1) {
|
|
|
- joutput_error(errcode::ErrLogin,"{$openid}:{$password},登录失败");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
+ if ($userid == -1) {
|
|
|
+ joutput_error(errcode::ErrLogin, "{$openid}:{$password},登录失败");
|
|
|
+ } else {
|
|
|
$key = memberModel::gen_uid_token($userid);
|
|
|
- $ret = rcache($key,'member');
|
|
|
- if(empty($ret)) {
|
|
|
+ $ret = rcache($key, 'member');
|
|
|
+ if (empty($ret)) {
|
|
|
$token = $this->_get_token($userid, $openid, 'lrlz');
|
|
|
wcache($key, array('token' => $token), 'member', self::token_expire);
|
|
|
-
|
|
|
+
|
|
|
$key_token_uid = memberModel::gen_token_uid($token);
|
|
|
wcache($key_token_uid, array('userid' => $userid), 'member', self::token_expire);
|
|
|
-
|
|
|
+
|
|
|
$ret['cache_expiration_time'] = TIMESTAMP + self::token_expire * 60;
|
|
|
$ret['token'] = $token;
|
|
|
}
|
|
|
- $ret['systime'] = TIMESTAMP;
|
|
|
+ $ret['systime'] = TIMESTAMP;
|
|
|
joutput_data($ret);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
- * 注销
|
|
|
- */
|
|
|
- public function logoutOp()
|
|
|
+ * 注销
|
|
|
+ */
|
|
|
+ public function logoutOp()
|
|
|
{
|
|
|
$token = trim($_POST['token']);
|
|
|
if (empty($token)) {
|
|
@@ -88,117 +88,111 @@ class loginControl extends mobileHomeControl
|
|
|
if ($userid == -1) {
|
|
|
return joutput_error(errcode::ErrTokenExpire);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$uid_token = memberModel::gen_uid_token($userid);
|
|
|
- $token_uid = memberModel::gen_token_uid($token);
|
|
|
- dcache($uid_token,'member');
|
|
|
- dcache($token_uid,'member');
|
|
|
+ $token_uid = memberModel::gen_token_uid($token);
|
|
|
+ dcache($uid_token, 'member');
|
|
|
+ dcache($token_uid, 'member');
|
|
|
}
|
|
|
|
|
|
public function genuserOp()
|
|
|
- {
|
|
|
- if(!in_array($_POST['client'], $this->client_type_array)) {
|
|
|
+ {
|
|
|
+ if (!in_array($_POST['client'], $this->client_type_array)) {
|
|
|
return joutput_error(errcode::ErrApptype);
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
+ $type = $_POST['type'];
|
|
|
+ if (!isset($type) || !in_array($type, $this->client_login_type_array)) {
|
|
|
+ return joutput_error(errcode::ErrParamter, 'type error.');
|
|
|
+ }
|
|
|
|
|
|
- $type = $_POST['type'];
|
|
|
- if(!isset($type) || !in_array($type, $this->client_login_type_array)) {
|
|
|
- return joutput_error(errcode::ErrParamter,'type error.');
|
|
|
- }
|
|
|
-
|
|
|
$validator = new Validate();
|
|
|
- if($type == memberModel::anonymous_login)
|
|
|
- {
|
|
|
+ if ($type == memberModel::anonymous_login) {
|
|
|
$info = $_POST['info'];
|
|
|
if (!empty($info)) {
|
|
|
- $openid = md5(uniqid(mt_rand(), true));
|
|
|
- }
|
|
|
+ $openid = md5(uniqid(mt_rand(), true));
|
|
|
+ }
|
|
|
$validator->setValidate(Validate::notnull($info));
|
|
|
- }
|
|
|
- elseif ($type == memberModel::wxopen_login) {
|
|
|
- $openid = $_POST['openid'];
|
|
|
+ } elseif ($type == memberModel::wxopen_login) {
|
|
|
+ $openid = $_POST['openid'];
|
|
|
$validator->setValidate(Validate::verify_openid($openid));
|
|
|
} else {
|
|
|
- return joutput_error(errcode::ErrUsertype,'错误的获取用户类型,目前只支持匿名获取和微信公众号获取身份.');
|
|
|
+ return joutput_error(errcode::ErrUsertype, '错误的获取用户类型,目前只支持匿名获取和微信公众号获取身份.');
|
|
|
}
|
|
|
$err = $validator->validate();
|
|
|
- if($err != '') {
|
|
|
+ if ($err != '') {
|
|
|
return joutput_error(errcode::ErrParamter, $err);
|
|
|
- }
|
|
|
-
|
|
|
- $model_member = Model('member');
|
|
|
- $userid = $model_member->getMemberID($openid,$type);
|
|
|
- if($userid == -1)
|
|
|
- {
|
|
|
+ }
|
|
|
+
|
|
|
+ $model_member = Model('member');
|
|
|
+ $userid = $model_member->getMemberID($openid, $type);
|
|
|
+ if ($userid == -1) {
|
|
|
$baseinfo = array();
|
|
|
- if($type == memberModel::anonymous_login) {
|
|
|
+ if ($type == memberModel::anonymous_login) {
|
|
|
$baseinfo['anonymous_id'] = $openid;
|
|
|
- $baseinfo['member_name'] = 'anonymous';
|
|
|
- $baseinfo['member_type'] = memberModel::anonymous_login;
|
|
|
+ $baseinfo['member_name'] = 'anonymous';
|
|
|
+ $baseinfo['member_type'] = memberModel::anonymous_login;
|
|
|
} elseif ($type == memberModel::wxopen_login) {
|
|
|
$baseinfo['member_wxopenid'] = $openid;
|
|
|
- $baseinfo['member_name'] = 'wxuser';
|
|
|
- $baseinfo['member_type'] = memberModel::wxopen_login;
|
|
|
+ $baseinfo['member_name'] = 'wxuser';
|
|
|
+ $baseinfo['member_type'] = memberModel::wxopen_login;
|
|
|
} else {
|
|
|
//不会走到这儿,
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$ret = $model_member->addMember($baseinfo);
|
|
|
- if($ret != false) {
|
|
|
+ if ($ret != false) {
|
|
|
return joutput_data(array('userid' => $openid));
|
|
|
} else {
|
|
|
- return joutput_error(errcode::ErrorDB,'插入数据库错误.');
|
|
|
+ return joutput_error(errcode::ErrorDB, '插入数据库错误.');
|
|
|
}
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
+ } else {
|
|
|
return joutput_data(array('userid' => $openid));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public function bindOp()
|
|
|
{
|
|
|
- static $bind_types = array('mobile','wx');
|
|
|
+ static $bind_types = array('mobile', 'wx', 'mobilenewpassword');
|
|
|
|
|
|
$type = trim($_POST['type']);
|
|
|
- if(!isset($type) || !in_array($type, $bind_types)) {
|
|
|
- return joutput_error(errcode::ErrParamter,'Bind type error,only support mobile and wx.');
|
|
|
- }
|
|
|
+ if (!isset($type) || !in_array($type, $bind_types)) {
|
|
|
+ return joutput_error(errcode::ErrParamter, 'Bind type error,only support mobile and wx.');
|
|
|
+ }
|
|
|
|
|
|
$token = trim($_POST['token']);
|
|
|
- if(empty($token)) {
|
|
|
- return joutput_error(errcode::ErrParamter,'Token cannot empty.');
|
|
|
+ if (empty($token)) {
|
|
|
+ return joutput_error(errcode::ErrParamter, 'Token cannot empty.');
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$userid = token_uid($token);
|
|
|
- if($userid ==-1) {
|
|
|
+ if ($userid == -1) {
|
|
|
return joutput_error(errcode::ErrTokenExpire);
|
|
|
}
|
|
|
|
|
|
$validator = new Validate();
|
|
|
- $data = array();
|
|
|
- if($type == 'mobile' || $type == 'mobilenewpassword') {
|
|
|
+ $data = array();
|
|
|
+ if ($type == 'mobile' || $type == 'mobilenewpassword') {
|
|
|
$code = trim($_POST['code']);
|
|
|
$password = trim($_POST['password']);
|
|
|
- $validator->setValidate(Validate::smscode($code));
|
|
|
+ $validator->setValidate(Validate::smscode($code));
|
|
|
$validator->setValidate(Validate::verify_password($password));
|
|
|
$data['member_passwd'] = md5($password);
|
|
|
} elseif ($type == 'wx') {
|
|
|
$openid = trim($_POST['openid']);
|
|
|
$data['member_wxopenid'] = $openid;
|
|
|
- $validator->setValidate(Validate::verify_openid($openid));
|
|
|
+ $validator->setValidate(Validate::verify_openid($openid));
|
|
|
$cond = array('member_wxopenid' => $openid);
|
|
|
} else {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$err = $validator->validate();
|
|
|
- if($err != '') {
|
|
|
+ if ($err != '') {
|
|
|
return joutput_error(errcode::ErrParamter, $err);
|
|
|
}
|
|
|
-
|
|
|
- if($type == 'mobile')
|
|
|
- {
|
|
|
+
|
|
|
+ if ($type == 'mobile') {
|
|
|
$key = $this->gen_token_code($token);
|
|
|
$ret = rcache($key, 'member');
|
|
|
if (!empty($ret) && $ret['code'] == $code) {
|
|
@@ -209,14 +203,27 @@ class loginControl extends mobileHomeControl
|
|
|
} else {
|
|
|
return false;
|
|
|
}
|
|
|
+ } elseif ($type == 'mobilenewpassword') {
|
|
|
+ $key = $this->gen_token_code($token);
|
|
|
+ $ret = rcache($key, 'member');
|
|
|
+ if (!empty($ret) && $ret['code'] == $code) {
|
|
|
+ $mobile = $ret['mobile'];
|
|
|
+ $cond = array('member_mobile' => $mobile);
|
|
|
+ $data['member_type'] = 0;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$model = Model('member');
|
|
|
$ret = $model->where($cond)->find();
|
|
|
- if(empty(ret) || count($ret) == 0) {
|
|
|
+ if (empty(ret) || count($ret) == 0) {
|
|
|
$model->where(array('member_id' => $userid))->update($data);
|
|
|
dcache($userid, 'member');
|
|
|
joutput_data(NULL);
|
|
|
+ } elseif ($type == 'mobilenewpassword') {
|
|
|
+ $model->where($cond)->update($data);
|
|
|
+ joutput_data(NULL);
|
|
|
} else {
|
|
|
joutput_error(errcode::ErrIDbinded);
|
|
|
}
|
|
@@ -227,25 +234,25 @@ class loginControl extends mobileHomeControl
|
|
|
static $field = 'member_id,member_mobile,member_name,member_truename,member_avatar,member_sex,member_birthday,member_email,member_email_bind';
|
|
|
|
|
|
$token = trim($_POST['token']);
|
|
|
- if(empty($token)) {
|
|
|
- return joutput_error(errcode::ErrParamter,'Token cannot empty.');
|
|
|
+ if (empty($token)) {
|
|
|
+ return joutput_error(errcode::ErrParamter, 'Token cannot empty.');
|
|
|
}
|
|
|
|
|
|
$userid = token_uid($token);
|
|
|
- if($userid == -1) {
|
|
|
- joutput_error(errcode::ErrTokenExpire);
|
|
|
+ if ($userid == -1) {
|
|
|
+ joutput_error(errcode::ErrTokenExpire);
|
|
|
} else {
|
|
|
- $conditions = array('member_id' => $userid);
|
|
|
- $model = Model('member');
|
|
|
- $info = $model->getMemberInfoByID($userid,$field);
|
|
|
- joutput_data($info);
|
|
|
+ $conditions = array('member_id' => $userid);
|
|
|
+ $model = Model('member');
|
|
|
+ $info = $model->getMemberInfoByID($userid, $field);
|
|
|
+ joutput_data($info);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 登录生成token
|
|
|
- */
|
|
|
- private function _get_token($member_id, $member_name, $client)
|
|
|
+ */
|
|
|
+ private function _get_token($member_id, $member_name, $client)
|
|
|
{
|
|
|
$model_mb_user_token = Model('mb_user_token');
|
|
|
|
|
@@ -258,7 +265,7 @@ class loginControl extends mobileHomeControl
|
|
|
|
|
|
//生成新的token
|
|
|
$mb_user_token_info = array();
|
|
|
- $token = md5($member_name . strval(TIMESTAMP) . strval(rand(0,999999)));
|
|
|
+ $token = md5($member_name . strval(TIMESTAMP) . strval(rand(0, 999999)));
|
|
|
$mb_user_token_info['member_id'] = $member_id;
|
|
|
$mb_user_token_info['member_name'] = $member_name;
|
|
|
$mb_user_token_info['token'] = $token;
|
|
@@ -267,7 +274,7 @@ class loginControl extends mobileHomeControl
|
|
|
|
|
|
$result = $model_mb_user_token->addMbUserToken($mb_user_token_info);
|
|
|
|
|
|
- if($result) {
|
|
|
+ if ($result) {
|
|
|
return $token;
|
|
|
} else {
|
|
|
return null;
|
|
@@ -286,76 +293,76 @@ class loginControl extends mobileHomeControl
|
|
|
$mobile = trim($_POST['mobile']);
|
|
|
|
|
|
$token = trim($_POST['token']);
|
|
|
- if(empty($token)) {
|
|
|
- return joutput_error(errcode::ErrParamter,'Token cannot empty.');
|
|
|
+ if (empty($token)) {
|
|
|
+ return joutput_error(errcode::ErrParamter, 'Token cannot empty.');
|
|
|
}
|
|
|
|
|
|
$userid = token_uid($token);
|
|
|
- if($userid ==-1) {
|
|
|
- return joutput_error(errcode::ErrTokenExpire);
|
|
|
- }
|
|
|
+ if ($userid == -1) {
|
|
|
+ return joutput_error(errcode::ErrTokenExpire);
|
|
|
+ }
|
|
|
|
|
|
$validator = new Validate();
|
|
|
$validator->setValidate(Validate::verify_mobile($mobile));
|
|
|
|
|
|
$err = $validator->validate();
|
|
|
- if($err != '') {
|
|
|
+ if ($err != '') {
|
|
|
return joutput_error(errcode::ErrParamter, $err);
|
|
|
}
|
|
|
|
|
|
$sms = new Sms();
|
|
|
$code = makeSmscode();
|
|
|
|
|
|
- $status = $sms->send($mobile,array('code' => $code,'type' => Sms::register_code,'time' => '5'));
|
|
|
- if($status == 0) {
|
|
|
+ $status = $sms->send($mobile, array('code' => $code, 'type' => Sms::register_code, 'time' => '5'));
|
|
|
+ if ($status == 0) {
|
|
|
$key = $this->gen_token_code($token);
|
|
|
- wcache($key, array('code' => $code,'mobile' => $mobile), 'member', $code_expire);
|
|
|
+ wcache($key, array('code' => $code, 'mobile' => $mobile), 'member', $code_expire);
|
|
|
joutput_data(NULL);
|
|
|
} else {
|
|
|
- joutput_error(errcode::ErrSms,"send error=" . $status);
|
|
|
- }
|
|
|
+ joutput_error(errcode::ErrSms, "send error=" . $status);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- public function checkcodeOp()
|
|
|
+ public function checkcodeOp()
|
|
|
{
|
|
|
$token = trim($_POST['token']);
|
|
|
- if(empty($token)) {
|
|
|
- return joutput_error(errcode::ErrParamter,'Token cannot empty.');
|
|
|
+ if (empty($token)) {
|
|
|
+ return joutput_error(errcode::ErrParamter, 'Token cannot empty.');
|
|
|
}
|
|
|
|
|
|
$userid = token_uid($token);
|
|
|
- if($userid ==-1) {
|
|
|
- return joutput_error(errcode::ErrTokenExpire);
|
|
|
- }
|
|
|
+ if ($userid == -1) {
|
|
|
+ return joutput_error(errcode::ErrTokenExpire);
|
|
|
+ }
|
|
|
|
|
|
$validator = new Validate();
|
|
|
|
|
|
- $code = trim($_POST['code']);
|
|
|
+ $code = trim($_POST['code']);
|
|
|
$validator->setValidate(Validate::smscode($code));
|
|
|
$err = $validator->validate();
|
|
|
- if($err != '') {
|
|
|
+ if ($err != '') {
|
|
|
return joutput_error(errcode::ErrParamter, $err);
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
$key = $this->gen_token_code($token);
|
|
|
- $ret = rcache($key,'member');
|
|
|
- if(empty($ret)) {
|
|
|
+ $ret = rcache($key, 'member');
|
|
|
+ if (empty($ret)) {
|
|
|
joutput_error(errcode::ErrSmscodeExpire);
|
|
|
} elseif ($ret['code'] == $code) {
|
|
|
- joutput_data(NULL);
|
|
|
+ joutput_data(NULL);
|
|
|
} else {
|
|
|
- joutput_error(errcode::ErrSmscode);
|
|
|
- }
|
|
|
+ joutput_error(errcode::ErrSmscode);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public function updateOp()
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public function registerOp()
|
|
|
{
|
|
|
- $model_member = Model('member');
|
|
|
+ $model_member = Model('member');
|
|
|
|
|
|
$register_info = array();
|
|
|
$register_info['username'] = $_POST['username'];
|
|
@@ -364,18 +371,17 @@ class loginControl extends mobileHomeControl
|
|
|
|
|
|
$register_info['checkcode'] = $_POST['password_confirm'];
|
|
|
$register_info['email'] = $_POST['email'];
|
|
|
-
|
|
|
+
|
|
|
$member_info = $model_member->register($register_info);
|
|
|
- if(!isset($member_info['error']))
|
|
|
- {
|
|
|
+ if (!isset($member_info['error'])) {
|
|
|
$token = $this->_get_token($member_info['member_id'], $member_info['member_name'], $_POST['client']);
|
|
|
- if($token) {
|
|
|
+ if ($token) {
|
|
|
output_data(array('username' => $member_info['member_name'], 'key' => $token));
|
|
|
} else {
|
|
|
output_error('注册失败');
|
|
|
}
|
|
|
} else {
|
|
|
- output_error($member_info['error']);
|
|
|
+ output_error($member_info['error']);
|
|
|
}
|
|
|
}
|
|
|
}
|