繁体   English   中英

Laravel 5.1身份验证系统状态

[英]Laravel 5.1 auth system with status

我是laravel的新手,我已经集成了内置的身份验证系统,并且运行完美。 现在,我还想在进行身份验证时考虑用户表的状态字段。 我进行了很多搜索,但是找不到将这种功能与内置laravel身份验证系统集成的正确方法。

认证时考虑用户状态很简单。 有两种方法可以执行此操作,具体取决于您是手动调用Auth :: attempt()还是在控制器中使用AuthenticatesUsersRegistersAndAuthenticatesUsers特性。

如果要手动调用Auth :: attempt() ,则始终将一组凭据传递给该方法。 这些凭据用于从数据库中获取用户。 状态字段添加到这些凭据,只有具有给定状态的用户才能登录,例如:

Auth::attempt([
    'username' => Request::input('username'),
    'password' => Request::input('password'),
    'status'   => 'active'
]);

以上将仅允许具有status = active的用户登录。

如果在控制器中使用AuthenticatesUsersRegistersAndAuthenticatesUsers特征,则需要重写getCredentials()方法。 此方法应返回与传递给Auth :: attempt()相同的数组:

 protected function getCredentials(Request $request) {
  return [
    'username' => Request::input('username'),
    'password' => Request::input('password'),
    'status'   => 'active'
  ];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM