2009-04-29 53 views
1

是否可以通知用户会话已过期?浏览器可以充当服务器并收到此类通知吗?通知客户端过期会话 - 网络编程

一个解决办法是生成JavaScript,做在客户端倒计时,最后通知客户,但我iterested如果postible做到这一点的第一种方式?

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

例如,django中的可能的实现方式是什么?

+2

就个人而言,如果您在某个地方打开某个页面时没有过期,那么我会更好。您可以使用JavaScript“ping”来实现这一点...... – Shog9 2009-04-29 23:02:18

回答

1

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

0

您不妨看看comet,虽然我觉得一个JavaScript计时器会是一个更好的解决方案是不易损坏,也更容易实现。

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

0

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

0

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

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