2014-08-28 2 views
-1

이 나 코드를하다 그/그녀가 내가 활성화가 필요하거나 잘못된 사용자 이름이나 암호로 로그인 실패 undrestand 수있는 방법을 활성으로 활성화되지 않습니다 때 사용자에게 경고합니다Laravel 인증 로그인 반환 특정 오류

public function login_Post() 
{ 
    if (Auth::user()->attempt(array('email' => Input::get('email'), 'password' => Input::get('password'), 'active' => 1))) 
    { 
     Event::fire('users.login'); 
     return Redirect::to('/')->with('message', 'succsed'); 
    } 
    else 
     return Redirect::to('user/login')->withInput(Input::except('password')); 
} 

?

답변

2

당신이 이미 가지고있는 코드를 가장 간단한 방법은 Auth::attempt() 먼저 다음을 확인하는 것입니다 active 속성을 사용하면 별도의 오류를 반환 할 수 있습니다.

컨트롤러는 :는 에러에이어서

public function login_Post() { if (Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password')))) { if(!Auth::user()->active) { Auth::logout(); return Redirect::to('user/login')->with('errors', ['Your account hasn't been activated']); } Event::fire('users.login'); return Redirect::to('/')->with('message', 'succsed'); } else return Redirect::to('user/login')->withInput(Input::except('password'))->with('errors', ['Authentication failed.']);; } 

시야 :

@if(Session::get('errors')) 

    <ul class="error"> 
     @foreach(Session::get('errors') as $message) 
      @if(is_array($message)) 
       @foreach($message as $subMessage) 
        <li>{{ $subMessage }}</li> 
       @endforeach 
      @else 
       <li>{{ $message }}</li> 
      @endif 
     @endforeach 
    </ul> 

@endif 
1

당신은 사용자가 처음 존재하는지 확인해야합니다 :

if (! User::where('email', Input::get('email'))->first()) 
{ 
    return 'This user does not exists'; 
} 

을 한 다음 시도 :

Auth::user()->attempt(...);