使用AJAX调用恢复会话

时间:2009-10-24 12:18:09

标签: javascript ajax security session cookies

我的应用在30分钟后会话超时。如果用户激活了“永久登录”功能,则在随后的HTTP请求中,服务器将读取“perm session”cookie并恢复会话。

但是,如果用户在会话过期后没有重新加载或导航到另一个页面,而是单击通过AJAX检索数据的按钮,则会话不会恢复;在应该加载数据的DIV中,会出现一个登录窗口。

这使我假设AJAX调用不带有cookie信息。我纠正了,还是我错过了别的什么?

更新

后端:symfony 1.2(PHP框架), 前端:原型

Update2:这是应用程序中的错误,而不是cookie的问题

2 个答案:

答案 0 :(得分:2)

XMLHttpRequest来电应该像正常一样携带Cookie信息。你可能遇到了一个bug。您确定来自同一域名的电话是什么?

也许你的饼干也到期了?更多信息可能会有所帮助.. :)

答案 1 :(得分:2)

听起来你正在恢复会话,但没有提供新的身份验证cookie。你可能想尝试一种我在我的博客上写过的技术,即在会话超时前提示用户,当他们点击OK更新它时,会提出一个请求用于保持会话和身份验证cookie的活动。您可以在http://farm-fresh-code.blogspt.com找到更多信息。该文章的标题为Client-side Session Termination