'number', 'mobile_phone' => 'require|mobile', ]; $this->validate($param, $validate, [ 'mobile_phone.require' => '请输入手机号', 'mobile_phone.mobile' => '请输入正确的手机号' ]); $param['type'] = $param['type'] ?? 1; $login_logic = new \app\base\logic\user\Login(); $result = $login_logic->sendCodeMessage($param['mobile_phone'], $param['type']); if ($result['code']) { return json($result); } return json($result); } /** * 修改密码 * @date 2022-10-12 */ public function updatePassword() { $param = input('post.'); $validate = [ 'mobile_phone' => 'require|mobile', 'code' => 'require|number|length:4', 'password' => 'require|graph|min:6', 'password_confirm' => 'require|confirm:password', ]; $this->validate($param, $validate, [ 'mobile_phone.require' => '请输入手机号', 'mobile_phone.mobile' => '手机号码格式不正确', 'code.require' => '请输入验证码', 'code.number' => '验证码格式有误', 'code.length' => '验证码长度有误', 'password.require' => '请输入新密码', 'password.graph' => '密码格式有误', 'password.min' => '密码最低长度为6位', 'password_confirm.require' => '请再次输入新密码', 'password_confirm.confirm' => '您输入的两次密码不同' ]); $login_logic = new \app\base\logic\user\Login(); $result = $login_logic->updatePassword($param['password'], $param['mobile_phone'], $param['code']); if ($result['code']) { return json($result); } return json($result); } /** * 获取默认地址 * @param string $param ['mobile_phone'] 手机号 * @param string $param ['code'] 验证码 * @date 2022-10-10 */ public function verifyOldMobilePhone() { $param = input('post.'); // 参数校验 $validate = [ 'mobile_phone' => 'require', 'code' => 'require', ]; $this->validate($param, $validate, [ 'mobile_phone.require' => '请输入手机号', 'code.require' => '请输入验证码' ]); $login_logic = new \app\base\logic\user\Login(); $result = $login_logic->verifyOldMobilePhone($param['mobile_phone'], $param['code'], 4); if ($result['code']) { return json($result); } return json($result); } /** * 更换手机号第二步--绑定新手机号 * @param string $param ['mobile_phone'] 新手机号 * @param string $param ['code'] 验证码 * @param string $param ['mobile_phone_old'] 旧手机号 * @date 2022-10-10 */ public function bindNewMobilePhone() { $param = input('post.'); $validate = [ 'mobile_phone' => 'require|different:mobile_phone_old', 'mobile_phone_old' => 'require', 'code' => 'require', ]; $this->validate($param, $validate, [ 'mobile_phone.require' => '请输入手机号', 'mobile_phone.different' => '新手机号不能和旧手机号一致', 'mobile_phone_old.require' => '没有获取到旧手机号', 'code.require' => '请输入验证码', ]); $login_logic = new \app\base\logic\user\Login(); $result = $login_logic->bindNewMobilePhone($param['mobile_phone'], $param['code'], $param['mobile_phone_old']); if ($result['code']) { return json($result); } return json($result); } /** * 用户登录&注册 * @date 2021-02-25 */ public function login() { $param = input('post.'); $param['last_user_id'] = input('post.last_user_id', ''); $param['third_type'] = input('post.third_type', ''); //APP登录时可能有 $param['third_id'] = input('post.third_id', ''); //APP登录时可能有 $validate = [ 'type' => 'require|in:1,2', 'mobile_phone' => 'require|mobile', ]; if ($param['type'] == 1) { $validate['code'] = 'require'; } else if ($param['type'] == 2) { $validate['password'] = 'require'; } $this->validate($param, $validate, [ 'mobile_phone.require' => '请输入手机号', 'mobile_phone.mobile' => '请输入正确的手机号' ]); $check_model = new ProjectCheck(); $user_logic = new \app\base\logic\User(); $jwt_class = new \jwt\Jwt(); $login_service = new \app\base\service\user\Login(); //根据不同平台组合info参数 $info = TOKEN_DATA; $info['user_agent'] = USER_AGENT; Db::startTrans(); if ($param['type'] == 1) { //1--手机号验证码登录 2--账号密码登录 $is_check = $check_model->isCheck(); //如果是审核状态则不校验验证码 if ($is_check != 1) { // 检查验证码是否正确 $res = $login_service->checkCode($param['mobile_phone'], $param['code'], 1); if ($res['code'] != 0) { Db::rollback(); return json($res); } } else { # TODO 手机号是否为系统已存在手机号 如果不是 提示审核人员输入提供手机号 } } else if ($param['type'] == 2) { //检查密码是否正确 $res = $user_logic->checkPassword($param['mobile_phone'], $param['password']); if ($res['code'] != 0) { Db::rollback(); return json($res); } } //登录并更新相关信息 $res = $user_logic->login($param['mobile_phone'], $info, $param['last_user_id'], $param['third_type'], $param['third_id']); if ($res['code'] != 0) { Db::rollback(); return json($res); } $user_id = $res['data']['user_id']; //USER_ID Db::commit(); //绑定三方平台 // 签发token $arr = TOKEN_DATA; $arr['user_id'] = $user_id; $res_token = $jwt_class->signToken($arr); return sendSuccessMessage([ 'user_id' => $user_id, 'access_token' => $res_token['token'], 'access_token_expire_time' => $res_token['exp'], ]); } /** * 用户退出登录(APP/H5) * @date 2022-12-27 */ public function logout() { $param = input('post.'); $login_logic = new \app\base\logic\user\Login(); $result = $login_logic->logout(); return json($result); } }