我有一个应用程序,用户绝对必须登录才能使用它。
我在登录时使用PHP会话来存储用户数据。
如果用户让窗口保持打开状态,然后在一小时后返回,那么检查他们是否仍然登录的最佳方法是什么?
我能想到的选项是:
1) check mouse movement which then fire AJAX php file to see if session still active
2) check as above on mouse click anywhere
但是这些将不断运行,因此在没有那么多用户的情况下每秒可能击中和击中服务器数千次,所以我怀疑效率。
有没有更好的方法可以做到这一点?有"标准"吗?
我正在使用PHP和JQuery。
使用 Javascripts setInterval(function, time)
函数每隔 X 分钟轮询一次服务器,以检查用户是否经过身份验证。根据所述结果以 JSON 格式返回响应。
请参阅 javascript setInterval 以获取有关 setInterval()
函数的良好讨论。
如果您实际上询问用户在网站上是否活跃,您可以在 X 分钟(例如一小时)后使用 setTimeout()
功能通过 AJAX 请求将用户注销,或显示警告,例如网上网上银行中的警告。
如果用户在超时发生之前发出请求,则由于请求 - 响应周期,此过程自然会重新启动。