2016-12-25 11 views
1

私のプロジェクトで悩んでいます。私は、ユーザーが電子メールまたは携帯電話でログインできるようにしたい。これは完全に正常に動作します。しかし、今私は、アクティブなユーザーだけが電子メールまたは携帯電話でログインできるようにしたい。私はデータベースにアクティブなフィールドを持っています。このフィールドは、ユーザーがアクティブな場合は1に設定され、ユーザーがアクティブでない場合は0に設定されます。ただし、これを行う方法はわかりません。みんな私がこれを解決するのを助けてください。私はlaravel 5.3を使用しています。あなたはまた、ユーザーの電子メールとパスワードに加えて、認証クエリに余分な条件を追加することができますラーヴェルで、ラーベル認証が秘密裏に機能していません。5.3

<?php 
namespace App\Http\Controllers\Auth; 
use Illuminate\Http\Request; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\AuthenticatesUsers; 

class LoginController extends Controller 
{ 
    use AuthenticatesUsers; 
    protected $redirectTo = '/home'; 
    public function __construct() 
    { 
     $this->middleware('guest', ['except' => 'logout']); 
    } 
    protected $username = 'email'; 
    public function loginNameOrEmail(Request $request) 
    { 
     $field = filter_var($request->input('email'), FILTER_VALIDATE_EMAIL) ? 'email' : 'mobile'; 
     $request->merge([$field => $request->input('email')]); 
     $this->username = $field; 
     return $this->login($request);  
    } 
    public function username() 
    { 
     return $this->username; 
    } 
    protected function authenticated($request, $user) 
    { 
     if($user->is_admin == 1) { 
      return redirect()->intended('dashboard'); 
     } 
     return redirect()->intended('/home'); 
    } 
} 

答えて

1

LoginControllerコードがあります。たとえば、私たちはそのユーザが「アクティブ」としてマークされていることを確認可能性があります

if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) { 
    // The user is active, not suspended, and exists. 
} 

更新

最も簡単な方法としてcredentialsメソッドをオーバーライドすることです。このメソッドを追加

protected function credentials(Request $request) { 

     $request['active'] = 1; 
     return $request->only($this->username(), 'password', 'active'); 
} 

あなたのLoginController

Docs

+0

私はこれを追加する場合は、FatalErrorExceptionがLoginController.phpライン47にすることを私にエラーを与える:。 クラスが見つかりません「のApp \のHttp \コントローラは認証\認証を\」@アミット –

+0

どのように私は '上書きする可能性がログインメソッド。あなたは私にいくつかの例を教えてくれますか? –

+0

これを上書きするとエラーになり、メールや携帯ではログインできません。 –

関連する問題