【问题标题】:Check if a particular user is authenticated检查特定用户是否经过身份验证
【发布时间】:2020-11-29 23:51:45
【问题描述】:

有什么方法可以检查特定用户是否在 webapp 中登录?我已经搜索过,所有结果都是Auth::check(),但这不是我需要的。我需要像Auth::check($user_id_to_check) 这样的东西。真的不知道这是否可能。

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

感谢您的建议。

【问题讨论】:

    标签: laravel authentication session


    【解决方案1】:

    你可以使用

    $user = Auth::user();
    

    或者

    $id = Auth::id();
    

    Check The Doc here

    【讨论】:

      【解决方案2】:

      如果您需要在登录 user_id 时检查特定 id,那么您可以这样做

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

      auth()是获取auth用户及相关信息的助手。

      了解更多Auth Helper

      【讨论】:

        【解决方案3】:

        他在这里肯定要做的是向所有用户显示用户是否在线。为此,您必须实现其他逻辑。而Auth::check() 将不起作用,因为它只检查发送请求的用户是否经过身份验证。

        如果您记得用户的最后一个操作,并且您知道用户自动注销之前的超时时间,那么这将为您提供一个估计值,如果用户仍然登录。

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

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

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-09
          • 1970-01-01
          • 1970-01-01
          • 2021-08-01
          • 1970-01-01
          • 2020-09-28
          相关资源
          最近更新 更多