簡體   English   中英

Laravel:檢查當前是否有其他用戶登錄

[英]Laravel : Check if another user is currently logged in

我說的是帶有身份驗證系統的簡單 laravel 4.2 網站。

我是用戶 A(超級用戶),我想查看用戶 B 或/和用戶 C(以及所有其他用戶)是否已登錄。是否有任何內置功能(具有 Auth 類的功能)可以執行此操作?

您無法確定用戶 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

這很容易,但您一次只能檢查一個人,這意味着不可能使用復雜的條件,例如計算所有登錄用戶。 如果您想檢查您以外的用戶是否已登錄,請使用這樣的輔助函數。


<?php 
// Helper.php

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

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM