Laravel 5.2 : 在用户登录后做些什么?

(我是Laravel的初学者)

我正在使用 .我已成功启用身份验证;通过做和东西。Laravel 5.2php artisan make:auth

所以我的登录正在工作。

现在,一旦有人登录,我需要做点什么。举个简单的例子:

登录:

  • 用户登录后,将值写入会话。
  • 例如:$request->session()->put('UserAgent', $ClientUserAgent);

注销:

  • 同样的做法是,用户注销后,删除自定义 Session 值。
  • 例如:$request->session()->forget('UserAgent');

我不确定是否有(类似的东西)或,或类似的东西。hooksEvent ListenersEvent Handlers

我该怎么办?


答案 1

对于较新版本的拉拉维尔

如果你只是在做一些非常简单的事情,那么创建一个事件处理程序对我来说似乎有些过分。为此,Laravel 在类中包含了一个空方法。AuthenticatesUsers

只需将以下方法放在其中(覆盖它):app\Http\Controllers\LoginController

protected function authenticated(Request $request, $user)
{
    // stuff to do after user logs in
}

答案 2

对于帖子登录,您可以通过修改App/Http/Controllers/Auth/AuthController.php

添加到该类中以覆盖默认类:authenticated()

use Illuminate\Http\Request;

protected function authenticated(Request $request, User $user) {
   // put your thing in here

   return redirect()->intended($this->redirectPath());
}

对于注销,请将此函数添加到同一类中:

use Auth;

protected function getLogout()
{
    Auth::logout();

    // do something here

    return redirect('/');
}

推荐