所以,我有一些current_user方法,它从cookie的auth_token
中获取ID,并且我希望cookie在与站点的窗口关闭时被删除。如何在窗口关闭时删除cookie?
cookies[:auth_token] = @user.auth_token
我必须补充什么?
所以,我有一些current_user方法,它从cookie的auth_token
中获取ID,并且我希望cookie在与站点的窗口关闭时被删除。如何在窗口关闭时删除cookie?
cookies[:auth_token] = @user.auth_token
我必须补充什么?
实际上,如果您设置的cookie未提供过期日期,那么 只会保留,直到浏览器关闭。 (这可能意味着 程序本身,而不仅仅是一个窗口或选项卡。)
过期过期将立即删除cookie。
从主题:http://www.ruby-forum.com/topic/94682
@Joe半脸,如果它可以帮助你,请注明它是有用的。
它的工作原理,但我不知道如何设置cookie从头开始过期好?附:我不想在用户注销时关注用户活动 – 2013-05-13 21:51:43
不,它立即删除cookie,我发现...... Guy给出了错误的答案。即使点击重新加载也会跳出登录页面 – 2013-05-13 21:53:51
我曾经实施过类似的事情。出于安全考虑,我们必须在用户离开页面时自动登录用户。解决方案如下所示:
beforeunload
事件处理程序。beforeunload
事件处理程序等待其完成。
查找[当浏览器窗口关闭或用户导航时触发的事件](http://stackoverflow.com/questions/1025935/capture-event-onclose-browser)和[更新cookie的到期日期](http://stackoverflow.com/questions/2144386/javascript-delete-cookie)在该事件处理程序。 – Tony 2013-05-13 20:47:59
所以这是通过JS完成的?没有内置的Rails功能?比'cookies'和'cookies.permanent'之间有什么区别? – 2013-05-13 20:51:54
开始时没有注意到ruby-on-rails标签。我不太熟悉Rails(更多是Django的人)。由于Cookie保存在用户的浏览器中,你当然可以在JS的客户端处理它们。从Rails开始可能会更方便,但是您必须从JS中的'beforeunload''处理程序发出一个AJAX请求,才能从Rails获得新的响应以及更新后的Cookie。 – Tony 2013-05-13 21:15:36