我为用户设置了会话变量,用于跟踪和服务器的小更改,当用户注销并且新用户在不关闭浏览器的情况下登录时,会话变量仍处于活动状态。
示例Session.set(“变量”,变量) Session.get( “可变的”)
我想我正在寻找的是如何在用户注销时强制重新加载页面。
答案 0 :(得分:7)
我有一个简单的注销模板,可以加载一个微调器:
<template name="logout">
{{> spinner}} <!-- using sacha:spin package ->
</template>
然后是一个执行实际注销的助手以及所有清理工作。
Template.logout.rendered = function(){
Meteor.logout(function(err){
if ( err ){
Alerts.add('Error logging out: '+err); // using mrt:bootstrap-alerts
} else {
// your cleanup code here
Object.keys(Session.keys).forEach(function(key){
Session.set(key, undefined);
});
Session.keys = {}; // remove session keys
Router.go('/'); // redirect to the home page or elsewhere using iron:router
}
});
}
答案 1 :(得分:1)
Here是一个添加客户端onLogin和onLogout检测和回调的软件包(我没试过,但看起来很简单)。如果您想在用户注销时清除会话值...
Accounts.onLogout(function() {
Session.set('variable', null);
});
强制页面&#34;重新加载&#34;并不是一种非常流行的做事方式。如果您的页面根据会话值是否存在而呈现,则只需清除该值,页面将对您想要的状态做出反应。
答案 2 :(得分:0)
for (var key in Session.keys) {
Session.set(key, false);
}
Session.clear();