夏期劇*_*期劇場 22 php authentication event-handling laravel laravel-5.2
(我是Laravel的初学者)
我正在使用Laravel 5.2.我已成功启用身份验证; 通过做php artisan make:auth和事.
所以我的登录工作正常.
现在我需要在有人登录后做一些事情.举个简单的例子:
登录:
$request->session()->put('UserAgent', $ClientUserAgent);登出:
$request->session()->forget('UserAgent');我不知道是否有(类似的东西)hooks或者Event Listeners,Event Handlers或者类似的东西.
我该怎么办?
kjd*_*n84 18
对于较新版本的Laravel
如果你只是做一些非常简单的事情,那么创建一个事件处理程序似乎对我来说太过分了.为此,Laravel在AuthenticatesUsers课程中包含一个空方法.
只需将以下方法放入其中app\Http\Controllers\LoginController(覆盖它):
protected function authenticated(Request $request, $user)
{
// stuff to do after user logs in
}
Run Code Online (Sandbox Code Playgroud)
Ali*_*ief 12
对于post登录,你可以通过修改App/Http/Controllers/Auth/AuthController.php来做到这一点.
将authenticated()添加到该类中以覆盖默认值:
protected function authenticated(Request $request, User $user){
//put your thing in here
return redirect()->intended($this->redirectPath());
}
Run Code Online (Sandbox Code Playgroud)
在课堂上也包括这个:
use Illuminate\Http\Request;
Run Code Online (Sandbox Code Playgroud)
对于注销,将此函数添加到同一个类中:
protected function getLogout()
{
Auth::logout();
//do something here
return redirect('/');
}
Run Code Online (Sandbox Code Playgroud)
并且在课堂上也包括这个:
use Auth;
Run Code Online (Sandbox Code Playgroud)
下面Alief 的答案按预期工作正常。但正如我在谷歌上搜索的那样,使用事件处理程序可能是更优选的方式。(它的工作原理类似于自定义挂钩)。
因此,在不尊重下面 Alief 的答案的情况下,让我选择 -->我刚刚发现的这个事件处理程序方法。
谢谢大家的问候!
| 归档时间: |
|
| 查看次数: |
9536 次 |
| 最近记录: |