Laravel:检查其他用户当前是否已登录

时间:2014-12-09 14:11:46

标签: php authentication laravel

我正在谈论一个带有身份验证系统的简单laravel的4.2网站。

我是用户A(超级用户),我想查看用户B或/和用户C(以及所有其他用户)是否已登录。是否有任何内置函数(使用Auth类)这个 ?

2 个答案:

答案 0 :(得分:1)

您无法确定用户B / C是否已登录。但您可以猜测用户是否已登录。如果您还记得用户B / C的最后一次操作,并且您知道超时用户自动注销,如果用户仍然登录,这将为您提供估计值。

为您的用户表添加迁移并向表中添加新字段

$table->timestamp('last_activity')->nullable();

添加前过滤器

App::before(function ($request) {
    if (Auth::user()) {
        $user = Auth::user();
        $now = new DateTime();
        $user->last_activity = $now->getTimestamp();
        $user->save();
    }
});

现在您可以检查用户B / C的最后一次操作是什么时候,如果这是在自动注销时间内,则用户仍然可以登录。如果不是,用户肯定会被注销。

如果您想要记录用户活动,则会有一个包Regulus343/ActivityLog

答案 1 :(得分:0)

这很容易,但是您一次只能检查一个人,这意味着不可能使用复杂的条件,例如计算所有已登录的用户。 如果要检查除您以外的用户是否登录,请使用这样的帮助器功能。


<?php 
// Helper.php

    public function isLoggedIn($user_id)
    {
        if(Auth::check())
        {
            return $user_id == Auth::user()->id;
        }
    }  

?>