如何在Meteor中注销时删除会话变量?
问题描述:
我为用户设置了会话变量,该变量用于跟踪和处理微小的变化,并且当用户注销并且新用户登录而不关闭浏览器时,会话变量仍然处于活动状态.
I have set session variables for a user that I use to track and server small changes and when a user logs out and a new user Signs in without closing the browser the session variables are still active.
示例Session.set("variable",变量) Session.get(变量")
Example Session.set("variable", variable) Session.get("variable")
我猜我正在寻找的是如何在用户注销时强制重新加载页面.
I guess what I'm looking for is how to force page reload on user logout.
答
我有一个简单的注销模板,用于加载微调器:
I have a simple logout template that loads a spinner:
<template name="logout">
{{> spinner}} <!-- using sacha:spin package ->
</template>
然后一个帮助程序进行实际注销以及所有清理.
Then a helper that does the actual logging out as well as all the cleanup.
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
}
});
}