流星:强制用户在服务器端注销

Meteor: Force user logout on server-side

我的 Meteor 应用程序中的用户需要一个经过验证的电子邮件地址才能登录。当用户更改他的电子邮件地址时,我想在服务器端注销他并发送一封新的验证电子邮件。

我已经在删除 login.resume.tokens,但这并没有终止用户会话(他在页面重新加载时注销)。那么我该如何杀死服务器端的用户会话呢?还有更多的东西要删除吗? 我希望浏览器反应性地意识到当前会话已经关闭。

我想你想使用“currentUser”。它是反应性的,当令牌在服务器端被删除时,它将 return 为空。

{{#if currentUser }}
  <!--  template here  -->
{{/if}}

这似乎没有记录,但您是否在服务器上尝试过 Accounts.logout()?看起来像 it's implemented。否则在客户端上更改后只是 运行 Accounts.logout()。我认为你的情况是可以接受的。

您可以使用 Tracker & autorun 跟踪用户状态,如下所示:

Tracker.autorun(() => {
    if (! Meteor.userId() && ! Meteor.loggingIn()) // do something here;
});

我已经让服务器端 Meteor.call('logout') 为我工作。但是,我找不到它的文档。

对于客户端上的反应变量,请尝试使用 Meteor.userId(),例如在像 Meteor.autorun(function(){...});.

这样的自动运行中