1

こんにちは、私はlaravel 5.2のデフォルト認証を使用していますが、ユーザーはアクティブステータスでのみログインする必要があります。

https://laravel.com/docs/5.2/authentication

このリンクでは、彼らは次のような方法を与えました

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

しかし、これはlaravel 5.2のどこにあるのかわかりませんでした。

検索しましたが、解決策は以前のバージョン用であり、5.2 用ではありません。

したがって、アクティブなステータスのみを持つユーザーにログインするのを手伝ってください。問題を解決するために、5.1または以前のバージョンのビルトインまたはカスタムソリューションではなく、laravel 5.2を提供してください

4

2 に答える 2

1

デフォルトの認証設定を使用していると仮定すると、 traitに由来するのgetCredentialsメソッドをオーバーライドできます。AuthControllerAuthenticatesUsers

protected function getCredentials(Illuminate\Http\Request $request)
{
    return $request->only($this->loginUsername(), 'password') + ['active' => 1];
}

Auth::attemptこのメソッドは、のloginメソッドで渡された資格情報配列を返しますAuthController。他の人が言及したように、テーブルにactiveフィールドが必要です。users

于 2016-07-30T02:18:19.667 に答える
0

この例は、ログイン時にカスタム フィールドを追加できることを示すためのものです。

isActive のような追加のフィールドを User テーブルに追加する必要があります。

これを行うと、アプリケーションでユーザーがアクティブかどうかを確認できます。

if($user->isActive) {
 // do something
}
于 2016-07-29T12:12:06.043 に答える