| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 | <?phpnamespace App\Http\Controllers\Web\Auth;use Aix\Sms\Contracts\Smser;use App\Http\Controllers\Web\WebBaseController;use App\Services\Auth\AuthService;use App\Services\Common\GeetestService;use App\Services\Common\SmsService;use App\Validators\AuthValidatorRequest;use Closure;use Illuminate\Support\Facades\Auth;class LoginController extends WebBaseController{    /**     * @var AuthService     */    protected $authService;    /**     * @var SmsService     */    protected $smsService;    /**     * @var GeetestService     */    protected $geetestService;    /**     * LoginController constructor.     * @param AuthService $authService     * @param SmsService $smsService     * @param GeetestService $geetestService     */    public function __construct(        AuthService $authService,        SmsService $smsService,        GeetestService $geetestService    ) {        $this->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')            );            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'));    }}
 |