防止多次登录 Codeigniter 4

prevent multiple login Codeigniter 4

我想制作登录系统,并检查用户是否是多登录,并在当前用户登录时提示“帐户已在其他设备上登录”。如何制作这样的系统?我在 google 上搜索过,但找不到合适的

检查用户是否多次登录,并在当前用户登录时提示“帐户已在其他设备登录”

问题:

由于无状态服务器,您无法真正判断用户何时仍处于登录状态。 假设我在隐身 window 中登录。当我关闭会话时,cookie 将被删除。 但是在服务器上它仍然存在。你怎么知道我是否真的登录了?

解决方案:

您可以向服务器发出心跳请求并记录activity。 所以你每分钟都有一个 JS 代码发送请求,这样你就知道用户在线了。同样在每个请求中,您也设置了 cookie。

因此,您记录每分钟和每个请求的最后 activity 时间。 当用户尝试登录时,您检查记录的 activity 是否早于两分钟。