检查特定用户是否已连接| Laravel Auth

检查特定用户是否已连接| Laravel Auth,laravel,authentication,logout,Laravel,Authentication,Logout,我想知道是否有任何方法可以知道用户当前是否在我的页面上处于活动状态(会话已启动) 我知道Auth::check()存在,但它仅在本地用户经过身份验证时返回,我不能使用它请求任何用户 我修改了LoginController,以便在登录方法和注销方法中,数据库修改我,从而知道它是否已启动或已断开连接。 但如果用户以另一种方式(例如关闭浏览器)注销,此解决方案将变得毫无用处 我突然想到,我可以创建一种setTimeOut事件,每10分钟检查一次Auth::check(),如果返回false,则修改该用

我想知道是否有任何方法可以知道用户当前是否在我的页面上处于活动状态(会话已启动)

我知道
Auth::check()
存在,但它仅在本地用户经过身份验证时返回,我不能使用它请求任何用户

我修改了
LoginController
,以便在登录方法和注销方法中,数据库修改我,从而知道它是否已启动或已断开连接。 但如果用户以另一种方式(例如关闭浏览器)注销,此解决方案将变得毫无用处

我突然想到,我可以创建一种setTimeOut事件,每10分钟检查一次
Auth::check()
,如果返回false,则修改该用户的数据库,以了解他不再连接。但我不知道怎么做


请帮助我。

您可以使用会话数据库,以便检查平台中所有已登录的用户及其上次活动

下面是会话数据库模式

Schema::create('sessions', function ($table) {
    $table->string('id')->unique();
    $table->unsignedInteger('user_id')->nullable();
    $table->string('ip_address', 45)->nullable();
    $table->text('user_agent')->nullable();
    $table->text('payload');
    $table->integer('last_activity');
});

然后调整您的
SESSION\u DRIVER=database
,您将看到会话数据库中的所有活动/非活动会话。

这是否回答了您的问题?这肯定回答了问题,应该是公认的答案。此外,Laravel还支持其他会话驱动程序,可用于支持类似的功能,并允许您在需要时定义自定义会话驱动程序: