是否可以通知用户会话已过期?浏览器可以充当服务器并接收此类通知吗?

一种解决方案是生成在客户端进行倒计时的JavaScript并最终通知客户端,但如果第一种方式可以做到这一点,我会感到厌烦吗?

第一种方法的后果是什么?有安全问题吗?

例如,django中的实现是什么?

有帮助吗?

解决方案

您可以让JavaScript定期轮询服务器以获取通知(比如每30秒),使用 XMLHTTPRequest 检查URL。如果会话超时,服务器可以在该URL上放置一些指示它的内容,然后可以弹出通知。这就是Stackoverflow如何在你撰写答案的过程中实现其他人已回答问题的通知。

其他提示

你可能希望看看彗星,虽然我认为是一个javascript计时器将是一个更好的解决方案,不太可能破坏,更容易实施。

我无法想到任何安全隐患,因为您只提供过期通知,而不是在该步骤中实际进行任何身份验证。

您正在寻找某种类型的彗星类型的东西。可能是最简单的“服务器推送”你可以做的是轮询服务器。

实际上在Django中,如果您使用文件系统或数据库引擎,则没有服务器端到期=>是你的客户端cookie会话ID到期了吗?否则,如果使用基于缓存的会话,则可以将缓存过期设置为比会话cookie过期更大的值。

然后,只需声明一个没有过期的cookie就可以在登录时标记客户端浏览器,并在每个页面中检查会话ID: 如果没有会话ID cookie但您的“cookie标志”,则会话已过期。无需检查服务器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top