我使用 PHP 5.4.36,Apache / 2.2.15,CakePHP 2.5.6。
当访问者点击"登录"按钮,我检查会话数据。
因此,对于最后一种情况,有时用户可以同时打开2个登录页面 在这种情况下,会打开2个标签。
这两个标签之间的请求时间接近0.5-1.5秒。如果差异超过2秒,则不存在问题。
此问题在1000个请求中变为1次,但是是否可以禁用此问题?
编辑:
我不希望用户同时使用不同的用户名登录。我希望用户只登录一次。但在这种情况下,使用相同凭据创建了2个会话。所以系统使用上次会话。而之前的会议变得简陋。此外,我的数据库记录显示了两个不同的登录,尽管用户只登录了一次。
答案 0 :(得分:0)
我们基于同一会话限制多次登录,但它远非完美。
除了Session之外,我们还有一个模型,它跟踪:user_id,session_id,user_agent,IP。如果用户有超过1条记录匹配4个匹配中的3个,我们认为它是双窗口错误并终止会话。
这并不完美,但它对我们来说还不错,如果它仍然困扰着你,你可能想要实现这些方面的东西。