使用PHP和AJAX关闭浏览器时销毁用户令牌

使用PHP和AJAX关闭浏览器时销毁用户令牌,php,ajax,jquery,Php,Ajax,Jquery,我需要一些帮助 我编写了一个模块,在我的系统中在线显示用户。我正在检查使用令牌登录到系统的用户 在我的数据库中,表用户有“token”字段。 当用户登录到系统时,令牌被创建并更新到数据库。相反,当用户单击注销链接时,令牌将被销毁 但我有一个问题,当用户关闭浏览器并且不点击注销链接时,我如何删除他们的令牌 希望你能理解这个问题。请帮忙。 谢谢问题在于,当用户关闭浏览器时,您不会得到通知(JavaScript和PHP)。但我认为您将令牌存储在cookie中,因此我不会说“有效”,直到浏览器生成一个会

我需要一些帮助

我编写了一个模块,在我的系统中在线显示用户。我正在检查使用令牌登录到系统的用户

在我的数据库中,表用户有“token”字段。 当用户登录到系统时,令牌被创建并更新到数据库。相反,当用户单击注销链接时,令牌将被销毁

但我有一个问题,当用户关闭浏览器并且不点击注销链接时,我如何删除他们的令牌

希望你能理解这个问题。请帮忙。
谢谢

问题在于,当用户关闭浏览器时,您不会得到通知(JavaScript和PHP)。但我认为您将令牌存储在cookie中,因此我不会说“有效”,直到浏览器生成一个会话cookie,该cookie在关闭浏览器后将无效。

我认为cron job可能是解决您问题的一个方法。对于该解决方案,您必须遵循以下步骤:

  • 添加带有标记的datetime字段

  • 在每个请求上更新datetime字段

  • 包装一个Cron作业,该作业将[每5-10分钟]检查 datetime字段与当前日期时间以及差异是否为 大于指定的时间间隔(会话时间)销毁 代币


我认为您需要为此目的使用会话,而不是数据库“也许这可以解决您的问题?如果javascript被禁用该会话Cookie由浏览器本身处理,它与javascript无关。因此,如果没有JavaScript,会话Cookie(Cookie将在浏览器关闭时销毁)也将失效。我可以想象使用带有令牌“valid until”字段的数据库,因此令牌不需要一直与Cookie一起传输。最后,用户仍然需要一个会话cookie,其中包含标识当前用户的信息。你能给我一个简单的例子吗。坦克斯