【问题标题】:Handling client independent user logging input处理独立于客户端的用户日志输入
【发布时间】:2012-10-16 07:54:00
【问题描述】:

假设有一个网页只能通过在单独的页面上输入用户名和密码来访问。该网页除了正常功能外,还应记录用户登录时间和用户退出时间。

我目前使用的系统是 JavaScript 解决方案。使用提交按钮上的成功单击事件记录登录的功能和注销按钮上的注销功能。

这里显然有一些问题。如果用户关闭浏览器怎么办?该注销不会被记录。如果用户失去互联网连接怎么办?等等等等。我可以想到一些客户端处理程序可能出错的用例场景。我需要一些受保护的东西,一些服务器端的东西。 你们推荐什么方法来完成上述任务而没有客户端的缺陷?是否存在可行的客户端方法?

【问题讨论】:

  • 即使你实现了服务器端,问题依然存在;您无法判断用户何时停止在应用程序中执行任何操作。他们通常只是关闭浏览器而无法退出。
  • 过期时间短的会话 id 怎么样。并且只有页面上的 javascript 代码才能使其保持活动状态。如果代码停止,则会话 ID 过期?
  • 首先 - 任何东西都不存在可行的客户端方法
  • 扫描数据库以获取上次活动的时间戳,如果它长时间假设已注销。
  • 在您的系统中,关闭浏览器窗口是否等同于注销?如果是这样,那么您可以使用客户端。看看unonload event

标签: php javascript jquery session login


【解决方案1】:

使用 websocket 解决方案,当新用户连接或断开连接时,您可能会在服务器端注意到。这种解决方案的唯一“缺点”是,如果用户转到另一个页面(即使在同一个域中),那么就像用户断开连接一样。然后,如果在新页面中使用相同的 websocket 解决方案来跟踪用户登录,它将“重新连接”。

您可以通过“类似 ajax”的导航来避免这种情况,这样用户就不会离开一个页面。

有一些很酷的 API 可以实现 websocket,比如 Pusher。

Here is the link to pusher

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 2013-10-31
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多