如果浏览器关闭了laravel,则自动注销

时间:2015-01-10 17:45:45

标签: php laravel

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

2 个答案:

答案 0 :(得分:2)

转到/app/config/session.php.

变化

'expire_on_close' => false,

 'expire_on_close' => true,

答案 1 :(得分:0)

经过几天的努力,终于找到了解决之道。 我们可以使用助手来做到这一点 例如,如果您将会话表用于商店会话,则可以这样做: 在session.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部分:

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

现在在您的主布局刀片文件或任何控制器中,您可以像这样简单地使用它:

@php
SetUsersMode();

@endphp

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