我在我的ruby on rails应用程序中使用'devise'进行密码验证。一旦我成功登录并关闭浏览器并打开一个新的浏览器窗口,我仍然登录。假设我正在使用Chrome,我关闭了Chrome的所有实例,然后打开一个新窗口。我仍然登录。当我在做IE和Firefox时也是如此。如何清除浏览器关闭的设计会话?
我会在窗口关闭并且打开一个新的窗口应该建立服务器和浏览器之间的新会话是不是?如果不是我如何实现这一目标?
我曾尝试单击浏览器窗口的onbeforeunload
事件上的注销按钮,但它不起作用,因为它在任何表单提交或链接单击时注销应用程序。
window.onbeforeunload = function() {
$('#logout_cls').click();
};
并试图发送AJAX
请求会话控制器销毁清除会话的操作。
jQuery(window).bind(
"close",
function(event) {
$.ajax({
type: 'DELETE',
dataType: 'json',
url: $('#logout_cls').attr('href')
});
});
但这一切都没有奏效。
我已经禁用了可记住的策略。这里是我的模型是如何:设计:database_authenticatable,:可恢复,:可跟踪,:validatable 想法? – user380692 2012-03-30 11:49:03
转到'db \ schema.rb'。检查你的用户表。它是否有一个名为'remember_created_at'或'remember_token'的属性?如果有,那么你必须删除它们。 – Ashitaka 2012-03-30 15:19:33
你是否设法解决这个问题? – Ashitaka 2012-04-10 02:55:24