我使用了laravel 5.3默认的laravel授权。我想知道的是如何在成功登录的会话中添加额外的信息?这样我就可以用
获取我需要的信息$user = Auth::user()->someField
我建议您直接使用Session facade,而不是通过User对象访问它。
为了得到你需要的东西,你需要钩入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',
],
];