1

我为用户登录设置了一个下降,并且有一个会话 time() 和其他一些添加到表中的东西。

我遇到的问题是,当用户关闭浏览器时,它不会从 mysql 表中删除会话。

从用户的角度来看,这很好,因为他们在打开浏览器时必须再次登录。

但对于超级用户仪表板,如果用户关闭浏览器,它仍会显示用户已登录。

我确实查看了关闭浏览器警报 javascript 代码,但我宁愿找到一种方法来做到这一点。

然后我想可能是一个 cron 脚本,但这可能会使用户注销,除非我每次点击另一个页面时都更新 time()。这是唯一的方法吗?

4

2 回答 2

1

您的数据库可以没有“isLoggedIn”列吗?它可以只有一个“lastActivityTime”列吗?如果 currentTime - lastActivityTime < loggedOutTime,则用户注销

于 2012-07-20T23:42:58.037 回答
1

我不相信浏览器告诉你它正在关闭。

唯一的方法是在服务器上进行。

每次验证时尝试针对会话记录当前时间 - 这将是会话的最后访问时间。

然后,您可以删除所有超出您决定的某个时间段的会话。您可以通过 cron 作业执行此操作,也可以将其添加到会话验证代码中,每个用户都可以帮助保持表格整洁。

于 2012-07-20T23:44:34.417 回答