Laravel 5 - 更改默认登录操作

时间:2015-08-16 13:36:51

标签: php laravel authentication controller laravel-5

我使用的是Laravel 5.0内置身份验证控制器。但是,除了进行身份验证之外,我还希望在登录期间添加一些操作,例如更新另一个表。但我似乎无法找到应该编写此类代码的位置。

对于注册,我在文件中添加了我想要的内容" Registrar.php"在文件夹"服务"。我怎么能登录?

提前致谢。

1 个答案:

答案 0 :(得分:4)

Laravel的身份验证层会在发生与身份验证相关的不同操作时触发多个事件:

  • auth.attempt - 当用户尝试进行身份验证时
  • auth.login - 用户成功验证时
  • auth.logout - 用户退出时

您可以侦听这些事件(在您的情况下为 auth.login )并应用必要的操作而无需从特征中复制代码,如果某些更改发生,您将手动更新代码身份验证工作。

首先,您需要创建一个监听器类:

class AuthLoginHandler {
  public function handle(User $user, $remember) {
    // do whatever you need to do after user authenticates
  }
}

然后在 EventServiceProvider 类中注册监听器:

protected $listen = [
  'auth.login' => [
        AuthLoginHandler::class
    ],
];

现在,每次用户进行身份验证时,您的处理程序的 handle()方法都会被调用,即使您有多个用于不同用户类型的登录表单,甚至还有一些其他形式的身份验证而不是表单

您可以在此处阅读有关Laravel活动的更多信息:http://laravel.com/docs/5.1/events#defining-listeners