all(), [ 'mobile' => [ 'required', 'string', 'regex:/^[1][3,4,5,7,8][0-9]{9}$/', function ($attribute, $value, $fail) { if (User::whereMobile($value)->exists()) { return $fail('手机号码已注册'); } }, ], 'password' => 'required|min:6', 'invitor' => [ 'required', function ($attribute, $value, $fail) { if (User::whereInviteCode($value)->exists() == false) { return $fail('邀请码不存在'); } }, ], ]); if ($validator->fails()) { return showJson(102, $validator->errors()->first()); } $param['invitor'] = User::whereInviteCode($param['invitor'])->first()->id; $user = User::addGetId($param); if ($user == false) { return showJson(102, '注册失败,请稍后重试'); } return showJson(101, '注册成功', [ 'accessToken' => Auth::guard('api')->tokenById($user), ]); } /** * 登录 * @author fatty * @date 2018/12/13 * @description */ public function login(Request $request) { $validator = Validator::make($param = $request->post(), [ 'type' => 'required|between:1,2', 'mobile' => 'required|string|exists:user,mobile', ]); //修改wsl20190624 if(@$param['type'] == 1){ $validator = Validator::make($param = $request->post(), [ 'password' => 'required_without:sms|min:6', ]); } if ($validator->fails()) { return showJson(102, $validator->errors()->first()); } if ($param['type'] == 1) {//密码登录 $users = Auth::guard('api')->attempt(['mobile' => $param['mobile'], 'password' => $param['password']]); if (!$users) { return showJson(102, 10003); } $user = User::whereMobile($param['mobile'])->first(); if ($user->status == 2) { return showJson(102, '账号已冻结'); } } else { // 验证短信 $smsProvider = \App::make('sms'); $sms = $smsProvider->verifySms($param['mobile'], $param['sms']); if ($sms == false) { return showJson(102, '短信验证码错误'); } $user = User::whereMobile($param['mobile'])->first(); } if ($user->is_frontend != 1) { return showJson(102,'抱歉,您不是前端用户'); } return showJson(101, '登录成功', [ 'accessToken' => Auth::guard('api')->tokenById($user->id) ]); } /** * 忘记密码 * @author fatty * @date 2019/2/28 * @param Request $request * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response * @description */ public function forgetpass(Request $request) { $validator = Validator::make($param = $request->post(), [ 'mobile' => 'required|exists:user,mobile', 'password' => 'required|min:6', 'sms' => 'required|size:4' ]); if ($validator->fails()) { return showJson(102, $validator->errors()->first()); } // 验证短信 $smsProvider = \App::make('sms'); $sms = $smsProvider->verifySms($param['mobile'], $param['sms']); if ($sms == false) { return showJson(102, '短信验证码错误'); } $update = User::whereMobile($param['mobile'])->update(['password' => User::encodePassword($param['password'])]); if (empty($update)) { return showJson(102, '修改失败'); } return showJson(101, '修改成功'); } }