2017-04-06 27 views
0

내 Laravel 5.4 프로젝트에서 Sentinel by Cartalyst를 사용하고 있습니다. 그러나 나는 사용자가 로그인을 위해 그/그녀의 자격 증명을 제공 한 후 '사용자'테이블의 데이터베이스 필드의 값을 확인 묶는하고있다.Cartalyst/Sentinel Laravel 5.4 - 로깅하기 전에 데이터베이스 필드를 확인하십시오.

if(Sentinel::authenticate($credentials, $rememberMe)) { 

    $slug = Sentinel::getUser()->roles()->first()->slug; 
    if($slug == 'A') { 
     Session::flash('welcome_message' , 'A'); 
     return response()->json(['redirect' => '/A/dashboard']); 
    } elseif($slug == 'B') { 
     Session::flash('welcome_message' , 'B'); 
     return response()->json(['redirect' => '/B/dashboard']); 
    } 
} else { 
    return response()->json(['error' => 'Wrong credentials entered'], 500); 
} 


// if(Sentinel::getUser()->status == 'Active') -- if this is true we log in 

문제를 나는 this..though 구현하는 방법을 찾을 수 없습니다 이 필드를 확인하지만, 그 다음 false를 반환하는 경우에는 사용자는 다음

+0

가'센티넬 :: 인증합니다? –

+0

@PankitGami Sentinel :: authenticate()는 사용자가 올바른 로그인 자격 증명을 제공하지만 그 전에 'active'필드를 확인하려는 경우에만 true를 반환합니다. 필드가 활성화되지 않은 경우에도 authenticate() 후에도 true를 반환하면 사용자가 로그인하지 않습니다. –

+0

그래서 둘 다 확인하고 싶습니다. 사용자가 올바른 자격증 명을 제공하고 그의 자격 상태가 활성 상태 여야 만 그 사람 만 로그인하도록 원하십니까? –

답변

0

시도에 기록됩니다 : (가)`true를 돌려

if($user = Sentinel::authenticate($credentials, $rememberMe) && $user->status == 'Active') { 

    $slug = Sentinel::getUser()->roles()->first()->slug; 
    if($slug == 'A') { 
     Session::flash('welcome_message' , 'A'); 
     return response()->json(['redirect' => '/A/dashboard']); 
    } elseif($slug == 'B') { 
     Session::flash('welcome_message' , 'B'); 
     return response()->json(['redirect' => '/B/dashboard']); 
    } 
} else { 
    return response()->json(['error' => 'Wrong credentials entered'], 500); 
}