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 的。

所以请帮助我登录仅具有活动状态的用户,所以给我 laravel 5.2 而不是 5.1 或以前版本的内置或自定义解决方案来解决问题

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。

完成此操作后,您可以检查用户是否在您的应用程序中处于活动状态。

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