>

라 라벨에서 처음이지만 멀티 인증 라 라벨에 대해 궁금합니다. 고객과 판매자라는 두 가지 규칙이있는 웹 사이트를 만들고 싶습니다. 그러나 동일한 로그인 양식을 사용하여 로그인하고 싶습니다. PHP artisan make : auth를 사용하려고하지만 하나의 컨트롤러에서 LoginController.php 사용하는 방법을 이해하지 못합니다. 많은 자습서에서 본 것에서 다른 로그인 양식과 컨트롤러로 분리되었습니다. 고객 로그인 양식 및 판매자 로그인 양식과 같습니다. 하나의 로그인 양식과 하나의 로그인 컨트롤러 만 사용하여 멀티 인증을 할 수 있습니까?

감사합니다


  • 답변 # 1

    attemptLogin() 를 덮어 쓸 수 있다고 생각합니다  당신의 LoginController 의 방법  이렇게 :

    protected function attemptLogin(Request $request)
    {
        $customerAttempt = Auth::guard('customer')->attempt(
            $this->credentials($request), $request->has('remember')
        );
        if(!$customerAttempt){
            return Auth::guard('seller')->attempt(
                $this->credentials($request), $request->has('remember')
            );
        }
        return $customerAttempt;
    }
    
    

  • 답변 # 2

    public function login(Request $request)
    {
        // Validate the form data
        $validator = $this->validate($request, [
        'email'   => 'required|email',
        'password' => 'required|string'
      ]);
        // Attempt to log the customer in
        if (Auth::guard('customer')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)) {
            // if successful, then redirect to their intended location
            return redirect()->intended(route('Put_your_URL'));
        } //attempt to log the seller in
        else if (Auth::guard('seller')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)) {
            // if successful, then redirect to their intended location
            return redirect()->intended(route('Put_your_URL'));
        }
        // if Auth::attempt fails (wrong credentials) create a new message bag instance.
        $errors = new MessageBag(['password' => ['Adresse email et/ou mot de passe incorrect.']]);
        // redirect back to the login page, using ->withErrors($errors) you send the error created above
        return redirect()->back()->withErrors($errors)->withInput($request->only('email', 'password'));
    }
    
    

관련 자료

  • 이전 beautifulsoup - 파이썬 루프에서 href 링크 및 텍스트 가져 오기
  • 다음 ibm doors - 주어진 열에 모듈 열/속성 삭제가 표시되지 않음