gpt4 book ai didi

php - Laravel 中的单 session 登录

转载 作者:可可西里 更新时间:2023-10-31 22:19:34 24 4
gpt4 key购买 nike

我正在尝试实现一种用户策略,即一次只能有一个用户登录。我正在尝试在 Laravel 的 Auth 驱动程序之上构建它。

我考虑过使用 Session 驱动程序将 session 存储在数据库中,并使每个用户名的 key 保持不变。由于 session 固定,这可能是一个糟糕的实现。

实现会是什么样的?我应该编辑 Auth 驱动程序中的哪些方法?公共(public) session key 存储在哪里?

最佳答案

我最近做了这个。

我的解决方案是在用户登录时设置 session 值。然后我有一个小类检查存储的 session ID 是否与当前登录的用户相同。

如果用户从其他地方登录,数据库中的 session ID 将更新,“旧”用户将被注销。

我没有更改 Auth 驱动程序或任何东西,只是在用户登录时将其放在最上面。登录成功时会发生以下情况:

$user->last_session = session_id();
$user->save();

为了检查 session 是否有效,我在下面使用了

if(session_id() != Auth::user()->last_session){
Auth::logout();
return true;
}

如您所见,我在用户表中添加了一列,名为 last_session

关于php - Laravel 中的单 session 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19510220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com