如何解决设计关于负载平衡的sign_out不起作用
我正在尝试检测用户不活动并注销用户,以下是我的代码的相关部分
JS代码
Session.inactivity().then(function() {
localStorage.removeItem(idleTimeCaptureKeyName);
Turbolinks.visit('/users/sign_in');
}).catch(function(err) {
notifyAdmin(`could not inactivate the user session`,{notify_to: notify_developers});
});
Session.inactivity method is below
const inactivity = () => {
return new Promise((resolve,reject) => {
$.ajax({
url: '/inactivity',method: 'POST',beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRF-Token',$('meta[name="csrf-token"]').attr('content'));
},success: function(res) {
resolve(true);
},error: function(err) {
reject(false);
}
})
});
}
sessions_controller.rb
def inactivity
user_signed_out = (Devise.sign_out_all_scopes ? sign_out : sign_out(:user))
flash.now[:alert] = 'Logged out due to inactivity.'
flash.keep(:alert)
if user_signed_out
head :ok
else
raise "User could not be logged out."
end
end
我注意到的问题有时是即使inactivity
方法被调用时用户没有注销,而是重定向到主页。
我有一个ALB,可能是在一个服务器上处理了用户不活动请求,而将用户重定向到登录页面是由另一台服务器处理的,该服务器仍存在用户会话,因此用户未注销但被重定向到主页。
我如何确保在用户注销后,无论哪个服务器处理请求,它都能正常工作。
或者是其他原因导致这种行为。
在这方面的任何帮助都将非常有用,谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。