Laravel 5.3记住我的Auth问题

时间:2016-11-01 23:05:34

标签: php laravel authentication laravel-5.3

我已经在laravel 5.3项目中实现了一个记住我的登录,但是我运行了一些问题,当用户返回到页面时,它自动登录但是由于会话已经过期而没有设置自定义会话变量。

我的会话生命周期为120,关闭时到期为止。

我的问题是:如何通过记住我的令牌来重新设置会话变量来检查用户是否正在被刷新?我正在考虑为此创建一个中间件,但我不知道这是否是正确的方法。

我的海关会话变量是:

session()->get('client_id') -> int
session()->get('acl') -> array

有人能引导我走向正确的方向吗?

1 个答案:

答案 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

的提问