我使用了laravel 5.3默认的laravel auth。我想知道的是,如何在成功登录时向会话添加其他信息?这样我就可以用
获取我需要的信息$user = Auth::user()->someField
答案 0 :(得分:1)
我建议您直接使用会话外观,而不是通过用户对象访问它。
为了得到你需要的东西,你需要加入Laravel的事件系统。
首先,您需要定义一个在用户进行身份验证时将被触发的侦听器,并将所有必要的数据放入会话中:
<?php namespace App\Listeners;
use Illuminate\Auth\Events\Login;
use Session;
class AddDataToUserSession
{
public function handle(Login $loginEvent)
{
Session::put('key', 'some value you want to store in session for that user');
// you can access the User object with $loginEvent->user
Session::put('user_email', $loginEvent->user->email);
}
}
然后,您需要注册此侦听器,以便在用户登录时触发。您可以在 EventServiceProvider 类中执行此操作。您需要将侦听器添加到登录事件触发的侦听器列表中:
protected $listen = [
'Illuminate\Auth\Events\Login' => [
'App\Listeners\AddDataToUserSession',
],
];