我已经在laravel 5.3项目中实现了一个记住我的登录,但是我运行了一些问题,当用户返回到页面时,它自动登录但是由于会话已经过期而没有设置自定义会话变量。
我的会话生命周期为120,关闭时到期为止。
我的问题是:如何通过记住我的令牌来重新设置会话变量来检查用户是否正在被刷新?我正在考虑为此创建一个中间件,但我不知道这是否是正确的方法。
我的海关会话变量是:
session()->get('client_id') -> int
session()->get('acl') -> array
有人能引导我走向正确的方向吗?
答案 0 :(得分:3)
检查以下解决方案,看看它是否有效。
Determine if the User Was Authenticated Via the Remember Cookie
编辑:
向EventServiceProvider
protected $listen = [
'Illuminate\Auth\Events\Login' => [
'App\Listeners\UpdateLoginType@handle',
],
];
为侦听器生成事件和处理程序
php artisan event:generate
转到UpdateLoginType
并修改handle
方法以检查登录类型
public function handle(Login $event)
{
if (\Auth::viaRemember()) {
//do something
} else {
//do something else
}
}
确保在登录时正确传递remember
变量。
类似于this one
的提问