2016-11-03 22 views
0

私がやりたいことは、ユーザーが電子メールで自分のアカウントを確認していない場合にログインさせないことです。私のログインコードは次のようになります:Laravel電子メールで確認する

public function postLogin() 
    { 
     $credentials = [ 
      'confirmed' => 0, 
      'email'  => Input::get('email'), 
      'password' => Input::get('password') 
     ]; 
     $user = Sentinel::authenticate($credentials, false); // Login the user (if possible) 

     if ($user and $user->banned) { 
      Sentinel::logout(); 
      $user = null; 
     } 

     if ($user) { 
      return $this->afterLoginActions(); 
     } else { 
      $this->alertFlash(trans('app.access_denied')); 
      return Redirect::to('auth/login'); 
     } 
    } 

私はまだエラーなしでログインできます。どんな助け?みんなありがとう!

編集されました:編集中です:私の詳細がインベントリであれば、今は私はフラッシュメッセージを受け取りません。 コード:

public function postLogin() 
    { 
     $credentials = [ 
      'email'  => Input::get('email'), 
      'password' => Input::get('password'), 
'confirmed' => 1 
     ]; 

     $user = Sentinel::authenticate($credentials, false); // Login the user (if possible) 
     if ($user and $user->banned) { 
      Sentinel::logout(); 
      $this->alertFlash(trans('app.banned')); 
      $user = null; 
     } 
     if ($user->confirmed==1) { 
      return $this->afterLoginActions(); 
     } 
     else if ($user->confirmed==0) { 
      Sentinel::logout(); 
      $this->alertFlash(trans('app.not_active')); 
      return Redirect::to('auth/login'); 
     } else { 
      $this->alertFlash(trans('app.access_denied')); 
      return Redirect::to('auth/login'); 
     } 
    } 
+0

チェックdatabbaseユーザテーブルは1に等しく確認するか、またはしない場合であれば)({ 戻りの$ this - > afterLoginActions($ USER->は== 1を確認しました)。 – iCoders

+0

回答ありがとうございます。今、エラーが出ていますが、まだユーザーがログインすることができます –

+0

$ユーザーを表示して結果を表示できます – iCoders

答えて

0

は、このユーザーは、電子メールの確認に合格した場合は情報を格納するテーブル内の列を持っていますか?あなたが持っているなら、これは典型的なLaravelのpostLoginメソッドを使って行います。

public function postLogin(Request $request) 
{ 
    $credentialas = (your credential here); 
    // only check credentials 
    if ($this->guard()->once($credentials)) { 
     $currentStatus = $this->guard()->user()->status; 
     if (intval($currentStatus) === (NOT_CONFIRMED)) { 
      $this->guard()->logout(); 
      return $this->sendSuspendedResponse($request); 
     } else { 
      $this->guard()->login($this->guard()->user()); 
      return $this->sendLoginResponse($request); 
     } 
    } 
} 
+0

OK、解決策を見つけました。私はそれが良いかどうかわからないが、今は完全なexeptを働いて、今私は私のログインの詳細incorectされている場合、フラッシュエラーメッセージが表示されません。最初の投稿で私のコードが更新されました –

+0

not_activeの部分のフラッシュは機能しますか? – wonyeouuu

関連する問題