2017-08-04 8 views
1

私はLaravelのデフォルト認証メカニズムの電子メール検証スキーマを実装しました。しかし、私は未確認の電子メールのユーザーがログインするのを防ぐ方法に固執しています。Laravel Userモデルの余分なフラグに基づいてユーザーのログインを防止する方法は?

ユーザーの資格情報が有効かどうかをテストできますが、その資格情報(Auth::validate)に基づいてユーザーを取得できません。

また、Auth::attemptまたはAuth::onceを使用してユーザーをログすることもできますが、確認されていないメールがあってもログインしています。

ユーザーに資格情報を照会する方法、または同じ要求でユーザーをログアウトする方法のいずれかが必要です。 (私はこのように、ユーザーに適切なエラー通知を返す、LoginControllerafter検証フックでそれを行うことができればボーナスポイントは

+0

https://laravel.com/docs/5.0/extending#authentication –

+0

5.4は、 04. –

+0

それはありますが、拡張機能はあなたが探しているものです。私はまた、Laravelがまだ読むのがとても面白い記事をいくつか削除したことに気付きました。セカンダリ:https://stackoverflow.com/questions/31015606/login-only-if-user-is-active-using-laravel –

答えて

3

あなたはAuth::attempt()に追加のパラメータを渡すことができます。

例えば:

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

ソース:https://laravel.com/docs/5.4/authentication#authenticating-users(「追加条件の指定」の下に)

関連する問題