如果浏览器关闭了拉拉维尔,则进行自动注销


Make auto logout if the browser closed laravel

如何在laravel 4.2中当用户离开页面时自动注销。我使用 auth::atempt 登录

转到/app/config/session.php.

改变

'expire_on_close' => false,

 'expire_on_close' => true,

经过几天的挣扎,终于找到了一种方法。我们可以使用助手来做到这一点例如,如果您将会话表用于存储会话,则可以这样做:会话中.php:

public function GetUsersId()
{
    return Session::whereNotNull('user_id')
        ->where('last_activity', '>=', now()->subMinutes(1))
        ->pluck('user_id');
}

这将为您提供过去 1 分钟内的活动用户。然后在帮助程序文件中,您可以编写:

if (!function_exists('SetUsersMode')) {
function SetUsersMode()
{
    $OnlineIds = (new App'Session)->GetUsersId();
    User::whereNotIn('id', $OnlineIds)->update(['Mode' => 'OFF']);
    User::whereIn('id', $OnlineIds)->update(['Mode' => 'ON']);
    return true;
}

}这将找到所有在线用户并将其设置为在线,并将其设置为离线。最后,要使用此帮助程序,请在 composesr.json 文件中将以下行添加到自动加载部分:

"autoload": {
    "psr-4": {
        "App''": "app/"
    },
    "files": [
        "app/Helpers.php"
    ],

现在,在主布局边栏选项卡文件或任何控制器中,您可以简单地使用它,如下所示:

@php
SetUsersMode();

@endphp

您可以随意命名函数或助手。这是我几天来发现的最简单的方法。希望这有助于某人加快编码速度。