2014-12-04 56 views
3

嗨,我已經使用laravel身份驗證實現了laravel登錄模塊。我使用Auth :: check對用戶進行了身份驗證,並在Auth :: attempt方法中發送了user_name,password。我在用戶表中有狀態欄。我們如何通過Auth :: check在laravel中限制停用用戶4.2

如何限制Auth :: check來驗證狀態爲1的用戶?

+0

謝謝Mauricio Trajano。我一定會考慮自定義身份驗證。感謝您的建議。 – Kiran 2014-12-04 07:00:32

回答

6

只需將狀態字段作爲確認之一即可。你可以這樣做:

$credentials = array(
     'username' => $input['email'], 
     'password' => $input['password'], 
     'status' => 1 
    ); 

    if (Auth::attempt($credentials)) 
    { 
     // User status is 1 and password was correct 
    } 

如果你想明確告訴他們不是活躍用戶 - 您可以使用此跟進:

if (Auth::validate(['username' => $input['email'], 'password' => $input['password'], 'status' => 0])) 
    { 
     return echo ('you are not active'); 
    } 
+0

感謝「換班」,您的答案對我有效。 – Kiran 2014-12-04 06:58:41

+0

如果用戶密碼錯誤怎麼辦?兩種情況都會顯示'你不活躍' – alex 2016-04-05 12:31:59

+0

@alex - 不會 - 因爲密碼錯誤 - 所以Auth :: validate將返回false。 – Laurence 2016-04-05 18:00:24

2

您可以添加附加條件到驗證::嘗試方法

if (Auth::attempt(array('email' => $email, 'password' => $password, 'status' => 1))) 
{ 
    //user is logged in (email and password matched, status is 1) 
} 
+0

感謝MaGnetas的回答。它真的幫助了我。但「換班」的答案更加詳細,所以我將其作爲我的答案進行了檢查。 – Kiran 2014-12-04 06:58:14

相關問題