laravel 5.2用户登录状态为活动状态

时间:2016-07-29 11:41:44

标签: laravel laravel-5.2 laravel-authorization

我每个人都使用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或者以前的内置版本或自定义解决方案来解决问题

2 个答案:

答案 0 :(得分:1)

假设您使用的是默认身份验证设置,则可以覆盖来自getCredentials特征的AuthController上的AuthenticatesUsers方法。

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

该方法返回Auth::attempt login方法AuthController中传递给active的凭据数组。正如其他人提到的那样,您需要在users表上添加 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"> </script> <script> $(document).ready(function(){ $("button").click(function(){ var env1 = document.getElementById("seldevid"); var env2 = document.getElementById("selstageid"); var env3 = document.getElementById("selprodid"); var apiname = $("#apinameid").val(); var apiurl = $("#apiurlid").val(); var actionvar; $("#actionid").change(function() { actionvar = $(this).val(); }).change(); if (env1.checked = true) { var env = "Dev"; } else if (env2.checked = true) { var env = "Stage"; } else if (env3.checked = true) { var env = "Prod"; } $.post("http://requestb.in/107fmof1", { apiName: apiname, apiURL: apiurl, environment: env, action: actionvar }, function(data,status){ alert("Data: " + data + "\nStatus: " + status); }); }); }); </script> 字段。

答案 1 :(得分:0)

该示例仅表示您可以在尝试登录时添加自定义字段。

您需要在用户表中添加一个额外的字段,如isActive。

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

if($user->isActive) {
 // do something
}