Meteor.js-在渲染前检查登录状态

Meteor.js - Check logged in status before render

本文关键字:检查 登录 状态 js- Meteor      更新时间:2023-09-26

首先让我们从我是Meteor的一个完全的noob这一事实开始。既然这已经解决了,就让问题开始吧。。。

我有两个页面,一个在"/"的启动页面和一个位于"/home"的主页。我用的是铁路由器。现在,如果我没有登录,并在启动页面和登录,我有它重定向到主页,这是可行的。现在,如果我关闭浏览器,重新打开并转到它加载的"/"几秒钟,就会意识到我实际上仍在登录,然后将我重定向到"/home"。

我的问题是,当我已经登录时,如何摆脱"/"上的初始显示?我只想向未登录的人显示该页面。以下是我在路由器中的代码:

    Router.configure({layoutTemplate: 'mainLayout'});
Router.map(function() {
  this.route('splash', {path: '/'});
  this.route('home');
});
var mustBeSignedIn = function(pause) {
  if (!(Meteor.user() || Meteor.loggingIn())) {
    Router.go('splash');
    pause();
  }
};
var goToDashboard = function(pause) {
  if (Meteor.user()) {
    Router.go('home');
    pause();
  }
};
Router.onBeforeAction(mustBeSignedIn, {except: ['splash']});
Router.onBeforeAction(goToDashboard, {only: ['splash']});

希望这能有所帮助。

使用fast-render可能是一个解决方案。只运行

mrt add fast-render

看看这篇关于这个主题的好文章。