2014-10-31 2 views
3

나는 postSignIn 방법을 작성하고 확인하려는 : 이메일, 비밀번호, verifiedFlag 을 먼저 같은 postSignIn 방법을 생성하기위한 아무런 문제가 없었다 :Laravel 인증 로그인 솔루션

public function postSignIn(){ 
    if(Auth::attempt(array('email' => Input::get('email'),'password' => Input::get('password'),'verifiedFlag'=>1))){ 
      return Redirect::route('home-view'); 
    } 
    else{ 
     return "Email/Password wrong or Your Account not verified by Admin"; 
    } 
} 

는하지만 지금은 그것을 더 만들려고

  • 계정에 대한 별도의 경고에 의해 친화적 인 사용자는 안심하고 잘못된
  • 이메일/비밀번호하지

그리고 지금은이처럼 만들려고 :

if(Auth::attempt(array('nim' => Input::get('nim'),'password' => Input::get('password')))){ 
     Auth::logout(); 
     if(Auth::attempt(array('nim' => Input::get('nim'),'password' => Input::get('password'),'verified' => 1))){ 
      return Redirect::route('home-view'); 
     } 
     else{ 
      return "Your Account not verfied. Please wait until admin verified your account or contact your admin"; 

     } 
    } 
    else{ 
     return "NIM/Password wrong"; 
    } 

두 번이 아무 문제가 없었다,하지만 난 인증이 로그인 할 필요가 없습니다 그래서 (시도)을 다른 솔루션을 필요가 있다고 생각

답변

3

당신이 할 수있는 validate 방법을 사용하십시오. 이렇게하면 작동합니다.

public function postSignIn(){ 
    if(Auth::attempt(array('email' => Input::get('email'),'password' => Input::get('password'),'verifiedFlag'=>1))){ 
      return Redirect::route('home-view'); 
    } 
    elseif(Auth::validate(array('email' => Input::get('email'),'password' => Input::get('password')))){ 
      return "Your Account not verified by Admin"; 
    } 
    else 
    { 
     return "Email/Password wrong"; 
    } 
} 
+0

게재 위치 IF 문에 잘못되었습니다. 어쨌든 감사합니다 :) – GandhyOnly

0

필터를 사용할 수 있습니다. 이 문제를 해결하는 것은 쉽고 깨끗합니다. 아래 예를 참조하십시오.

언제든지 사용자가 로그 아웃하면 세션 플래시 메시지로 사용자를 리디렉션 할 수 있습니다. 로그인 코드는 그대로 작동합니다.

Route::filter('auth', function() 
{ 
    if (Auth::guest()) 
    { 
     if (Request::ajax()) 
     { 
      return Response::make('Unauthorized', 401); 
     } 
     else 
     { 
      return Redirect::guest('login'); 
     } 
} 
else 
{ 
    // If the user is not active any more, immidiately log out. 
    if(Auth::check() && !Auth::user()->verifiedFlag) 
    { 
     Auth::logout(); 
     Session::flash('message','Your account is not active, please contact your administrator    to active your account'); 

     // redirect to login page 
     return Redirect::to('/'); 
    } 
} 
});