2017-11-17 7 views
0

laravel 표준 인증에 하나의 조건을 추가하려고합니다. 나는이 질문을 가진 많은 포럼을 발견했다. 그들 대부분은 벤더 폴더를 바꾸고 싶지 않습니다. 또한 AuthController.php에서 자격 증명 (Request $ request) 기능을 추가하는 방법을 찾았지만 운이 없습니다. 다음과 같이 보입니다 :Laravel 5.2 표준 인증 컨트롤러에 로그인하기 위해 하나 이상의 조건 ​​추가

protected function credentials(Request $request) 
{ 
    return array_merge($request->only($this->username(), 'password'), 
     ['Type' => 1]); 

} 

누구든지이 문제를 해결합니까, 아니면 조언을 받아야합니까? 감사합니다

다음
+0

당신은 인증 컨트롤러에서 기본 메서드를 재정의해야합니다. 귀하의 요구 사항을 기반으로 새로운 만들 수 있습니다. –

+0

자격 증명 메서드를 추가했지만 AuthController에는 존재하지 않습니다. 그리고 "귀하의 요구 사항에 따라 새로운 것을 만드는 것"은 무엇을 의미합니까? – LTM

+0

정확히 무엇을하기를 원하십니까 –

답변

1

은 당신의 로그인 기능을 대체 할 AuthController에서 사용할 수있는 기능입니다 :

public function login(Request $request) 
    { 
     $validator = Validator::make(
      $request->all(), 
      array(
       'user_name' => 'required', 
       'password' => 'required', 
      ), 
      array(
      ) 
     ); 

     if($validator->fails()){ 
      return redirect()->back()->withInput()->withErrors($validator->errors(),'invalid_credentials'); 
     } 

     if (!\Auth::validate(['user_name' => $request->user_name, 'password' => $request->password])) { 


      return redirect()->back()->withInput($request->only('user_name'))->withErrors([ 
       'user_name' => 'Incorrect Username or Password', 
      ],'invalid_credentials'); 
     } 

     $credentials = array('user_name' => $request->user_name, 'password' => $request->password); 

     if (\Auth::attempt($credentials, true)){ 

      /* Check your user type condition */ 
      if(\Auth::User()->type == '1'){ 
       return redirect()->intended($this->redirectPath()); 
      } 
      else{ 
       \Auth::logout(); 
       return redirect()->back()->withInput($request->only('user_name'))->withErrors([ 
        'user_name' => 'Your type validation message', 
       ],'invalid_credentials'); 
      } 
     } 

     return redirect()->back()->withInput($request->only('user_name'))->withErrors([ 
      'user_name' => 'Incorrect email address or password', 
     ],'invalid_credentials'); 
    } 

희망이 당신을 도와줍니다 .. :)를

+0

이것이 정확히 내가 말한 것입니다 .. –

+0

답장을 보내 주셔서 감사합니다. 먼저 로그인 방법이 없으므로 추가해야합니까? 둘째 - 위의 논리에서 알 수 있듯이 로그인 성공 후 "유형"을 선택하면이 옵션이 필요하지 않으며 로그인 후에 조건을 쿼리에 추가해야합니다. – LTM

+0

첫째, 예 .. 기본 방법을 무시하려면 로그인 메소드를 추가해야합니다. 둘째로 다른 기능도 무시할 수 있습니다 .. –