检查特定用户是否已通过身份验证

时间:2020-08-10 11:16:12

标签: laravel authentication session

是否可以检查特定用户是否已登录Web应用程序?我已经搜索过,所有结果均为Auth::check(),但这不是我所需要的。我需要类似Auth::check($user_id_to_check)的东西。真的不知道这是否有可能。

这基本上是在评论系统的用户头像中输出带有绿色或红色圆圈的图像。

谢谢您的建议。

3 个答案:

答案 0 :(得分:0)

您可以使用

$user = Auth::user();

$id = Auth::id();

Check The Doc here

答案 1 :(得分:0)

如果您需要登录user_id来检查特定ID,则可以执行以下操作

\auth()->id() == $user_id_to_check

auth()是获取身份验证用户和相关信息的助手。

更多Auth Helper

答案 2 :(得分:0)

他肯定会在此尝试向所有用户显示用户是否在线。为此,您必须实现其他逻辑。 Auth::check()将不起作用,因为它仅检查发送请求的用户是否已通过身份验证。

如果您还记得用户的最后一个操作,并且知道在用户自动注销之前的超时时间,那么无论用户是否登录,这都会为您提供一个估计值。

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

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

您需要在应用程序的某处进行检查并更新此时间戳。

if (Auth::check()) {
  Auth::user()->update([last_activity => now()]);
}

现在,您可以检查用户的最后一个动作是什么时候,以及是否在自动注销时间之内,否则该用户仍然可以登录。如果没有,则肯定是该用户已注销。