authService = $authService; $this->smsService = $smsService; $this->geetestService = $geetestService; $this->middleware(function ($request, Closure $next) { if ($request->route()->getName() != 'logout') { if (Auth::guard('web-member')->check() || Auth::guard('web-company')->check() || Auth::guard('web-organization')->check()) { return redirect(route('home')); } } return $next($request); }); } public function showLoginForm() { if (request()->has('redirect_url')) { session(['url.intended'=>urldecode(request()->get('redirect_url'))]); } return view('app.auth.login'); } public function showLoginCompanyForm() { if (request()->has('redirect_url')) { session(['url.intended'=>urldecode(request()->get('redirect_url'))]); } return view('app.auth.login_company'); } public function showLoginOrgForm() { if (request()->has('redirect_url')) { session(['url.intended'=>urldecode(request()->get('redirect_url'))]); } return view('app.auth.login_org'); } public function loginByAccount(AuthValidatorRequest $request) { if (!$this->geetestService->checkGeetest(config('aix.system.site_safety.site_vo_code.members_login'))) { return $this->sendErrorResponse("验证码不通过,请重新验证", ['is_need_geetest'=>1]); } if (!$member=$this->authService->loginByAccount($request->account, $request->password, $request->autoLogin)) { $data['is_need_geetest']=$this->geetestService->isNeedGeetest( config('aix.system.site_safety.site_vo_code.members_login') ); $redis = Cache::getRedis(); $value = $redis->get('user_'.$request->account); //dd($value); if(!$value){ $value = 0; } if($value >= 5){ $redis->expire('user_'.$request->account,900); return $this->sendErrorResponse("连续登录失败5次,请15分钟后再尝试!", $data); } $redis->set('user_'.$request->account,++$value); return $this->sendErrorResponse("账号或密码错误或密码过期,请使用找回密码功能", $data); } // if(!$this->authService->checkPwdLog($member)){ // return $this->sendErrorResponse("密码已过期,请使用找回密码重新设置密码"); // } if ($member->status == 0) { Auth::guard('web-member')->logout(); return $this->sendErrorResponse("你的账号处于封禁状态, 请联系管理员"); } return $this->sendSuccessResponse([ 'redirect_url'=>url($request->session() ->pull('url.intended', route('person.index')))]); } public function loginBySms(AuthValidatorRequest $request) { if (!$this->geetestService->checkGeetest(config('aix.system.site_safety.site_vo_code.members_login'))) { return $this->sendErrorResponse("验证码不通过,请重新验证", ['is_need_geetest'=>1]); } if (!$this->smsService->checkAuthSms( $request->mobile, Smser::TEMPLATE_AUTH_LOGIN, $request->code )) { $data['is_need_geetest']=$this->geetestService->isNeedGeetest( config('aix.system.site_safety.site_vo_code.members_login') ); return $this->sendErrorResponse("短信验证码不对", $data); } if (!$member=$this->authService->loginByAccount($request->mobile, '', $request->autoLogin)) { $data['is_need_geetest']=$this->geetestService->isNeedGeetest( config('aix.system.site_safety.site_vo_code.members_login') ); return $this->sendErrorResponse("用户不存在,请先注册账号", $data); } if ($member->status == 0) { Auth::guard('web-member')->logout(); return $this->sendErrorResponse("你的账号处于封禁状态, 请联系管理员"); } return $this->sendSuccessResponse([ 'redirect_url'=>url($request->session() ->pull('url.intended', route('person.index')))]); } public function loginByCompany(AuthValidatorRequest $request) { if (!$this->geetestService->checkGeetest(config('aix.system.site_safety.site_vo_code.members_login'))) { return $this->sendErrorResponse("验证码不通过,请重新验证", ['is_need_geetest'=>1]); } if (!$company=$this->authService->loginByCompany( $request->company_account, $request->company_password, $request->autoLogin )) { $data['is_need_geetest']=$this->geetestService->isNeedGeetest( config('aix.system.site_safety.site_vo_code.members_login') ); return $this->sendErrorResponse("账号或密码错误", $data); } if ($company->user_status == 0) { Auth::guard('web-company')->logout(); return $this->sendErrorResponse("你的账号处于封禁状态, 请联系管理员"); } return $this->sendSuccessResponse([ 'redirect_url'=>url($request->session() ->pull('url.intended', route('com.index')))]); } public function loginByOrg(AuthValidatorRequest $request) { if (!$this->geetestService->checkGeetest(config('aix.system.site_safety.site_vo_code.members_login'))) { return $this->sendErrorResponse("验证码不通过,请重新验证", ['is_need_geetest'=>1]); } if (!$organization=$this->authService->loginByOrganization( $request->org_account, $request->org_password, $request->autoLogin )) { $data['is_need_geetest']=$this->geetestService->isNeedGeetest( config('aix.system.site_safety.site_vo_code.members_login') ); return $this->sendErrorResponse("账号或密码错误", $data); } if ($organization->user_status == 0) { Auth::guard('web-organization')->logout(); return $this->sendErrorResponse("你的账号处于封禁状态, 请联系管理员"); } return $this->sendSuccessResponse([ 'redirect_url'=>url($request->session() ->pull('url.intended', route('org.index')))]); } public function logout() { $this->authService->logout(); return redirect(route('home')); } }