$name, 'password' => $password, ]; $validate = Loader::validate('User'); if (!$validate->scene('login')->check($data)) { return [ 'code' => $code, 'msg' => $validate->getError(), 'data' => [], ]; } // 获取用户信息. $userInfoWhere['user_name'] = $name; $userInfoWhere['user_status'] = 1; $getUserInfo = $this ->field('user_name, user_identity, user_phone, user_nickname, user_salt, user_password') ->where($userInfoWhere) ->find(); if(empty($getUserInfo)){ return [ 'code' => $code, 'msg' => lang('EA01002'), 'data' => [], ]; } $userSalt = $getUserInfo['user_salt']; // 验证密码. if (md5(md5($userSalt.$password)) !== $getUserInfo['user_password']) { return [ 'code' => $code, 'msg' => lang('EA01001'), 'data' => [], ]; } // 存储token及用户信息. $userInfo = [ 'userName' => $getUserInfo['user_name'], 'userId' => $getUserInfo['user_identity'], 'userNick' => $getUserInfo['user_nickname'], 'phone' => $getUserInfo['user_phone'], 'lastOperation' => time(), ]; $userToken = getToken(); // 修改最后操作信息. $upData = [ 'user_last_time' => time(), 'user_last_ip' => $_SERVER['REMOTE_ADDR'], 'user_token' => $userToken, 'user_lastOperation' => $userInfo['lastOperation'], ]; $upUser = $this ->where($userInfoWhere) ->update($upData); return [ 'code' => 1, 'msg' => lang('MA01001'), 'data' => [ 'userToken' => $userToken, 'userInfo' => [ 'phone' => $getUserInfo['user_phone'], 'userId' => $getUserInfo['user_identity'], 'name' => $name, 'lastOperation' => $userInfo['lastOperation'], ], ], ]; }//end login() /** * 用户注册 */ public function registered($getData) { $code = -2; // 获取的用户信息. $name = $getData['name']; $password = $getData['password']; $phone = $getData['phone']; // 验证传参. $data = [ 'name' => $name, 'password' => $password, 'phone' => $phone, ]; $validate = Loader::validate('User'); if (!$validate->scene('registered')->check($data)) { return [ 'code' => $code, 'msg' => $validate->getError(), 'data' => [], ]; } // 查询用户是否存在. $haveUser = $this ->field('user_id') ->where('user_name', $name) ->find(); if (empty($haveUser) === false) { return [ 'code' => $code, 'msg' => lang('EA01009'), 'data' => [], ]; } $userToken = getToken(); // 新增数据. $genPassword = GenPassword($password); $userData['user_name'] = $name; $userData['user_phone'] = $phone; $userData['user_identity'] = UUID(); $userData['user_password'] = $genPassword['password']; $userData['user_salt'] = $genPassword['encryption']; $userData['user_register_time'] = time(); $userData['user_register_ip'] = $_SERVER['REMOTE_ADDR']; $userData['user_last_time'] = time(); $userData['user_last_ip'] = $_SERVER['REMOTE_ADDR']; $userData['user_token'] = $userToken; $userData['user_lastOperation'] = time(); // 新增用户. $addUser = $this->insert($userData); if (empty($addUser) === false) { // 存储token及用户信息. $userInfo = [ 'userName' => $name, 'userId' => $userData['user_identity'], 'phone' => $userData['user_phone'], 'lastOperation' => time(), ]; return [ 'code' => 1, 'msg' => lang('MA01002'), 'data' => [ 'userToken' => $userToken, 'userInfo' => [ 'phone' => $userInfo['phone'], 'name' => $userInfo['userName'], 'userId' => $userInfo['userId'], 'lastOperation' => $userInfo['lastOperation'], ], ], ]; } else { return [ 'code' => $code, 'msg' => lang('EC01002'), 'data' => [], ]; }//end if }//end registered() /** * 退出登陆 */ public function logout() { // // 获取的传参信息. $userToken = input('get.userToken'); $userInfoWhere['user_token'] = $userToken; $upData = [ 'user_token' => '', 'user_lastOperation' => '', ]; $upUser = $this ->where($userInfoWhere) ->update($upData); return [ 'code' => 1, 'msg' => lang('MA01003'), 'data' => [], ]; }//end logout() /** * 当前用户信息 */ public function currentUser($userToken) { // $userToken = input('get.userToken'); // 获取用户信息. $userInfoWhere['user_token'] = $userToken; $getUserInfo = $this ->field('user_name, user_identity, user_phone, user_nickname, user_salt, user_password,user_token,user_lastOperation') ->where($userInfoWhere) ->find() ->toArray(); return [ 'code' => 1, 'msg' => lang('MA01003'), 'data' => $getUserInfo, ]; }//end currentUser() /** * 更新用户操作时间 */ public function updateLastOperation($userToken,$time) { $userInfoWhere['user_token'] = $userToken; $upData = [ 'user_lastOperation' => $time, ]; $upUser = $this ->where($userInfoWhere) ->update($upData); }//end updateLastOperation() /** * 修改用户密码 */ public function updatePassword($getData) { $code = -2; // 验证传参. $validate = Loader::validate('User'); if (!$validate->scene('updatePassword')->check($getData)) { return [ 'code' => $code, 'msg' => $validate->getError(), 'data' => [], ]; } $userToken = input('get.userToken'); $conditions_user['user_token'] = $userToken; $userInfo = $this ->field('user_salt, user_password') ->where($conditions_user) ->find(); // 验证旧密码. $userSalt = $userInfo['user_salt']; if (md5(md5($userSalt.$getData['oldPassword'])) !== $userInfo['user_password']) { return [ 'code' => $code, 'msg' => lang('EA01006'), 'data' => [], ]; } // 修改密码. $newPassword = GenPassword($getData['newPassword']); $updateData = [ 'user_password' => $newPassword['password'], 'user_salt' => $newPassword['encryption'], ]; $getUserInfo = $this ->where($conditions_user) ->update($updateData); if (empty($getUserInfo) === true) { return [ 'code' => $code, 'msg' => lang('EC01002'), 'data' => [], ]; } else { $code = 1; return [ 'code' => $code, 'msg' => lang('MC01004'), 'data' => [], ]; } }//end updatePassword() /** * 验证用户密码 */ public function checkPwd($getData) { $userToken = input('get.userToken'); $conditions_user['user_token'] = $userToken; // 获取用户信息. $userInfo = $this ->field('user_salt, user_password') ->where($conditions_user) ->find(); if(empty($getData['password'])){ return [ 'code' => -2, 'msg' => lang('EA01011'), 'data' => [], ]; } if(empty($userInfo)){ return [ 'code' => -2, 'msg' => lang('EA01012'), 'data' => [], ]; } if($userInfo['user_password'] != md5(md5($userInfo['user_salt'].$getData['password']))){ return [ 'code' => -2, 'msg' => lang('EA01001'), 'data' => [], ]; } return [ 'code' => 1, 'msg' => '', 'data' => $userInfo, ]; }//end checkPwd() }