在 meteor 应用程序上使用 iron-router 和 onBeforeAction 进行重定向
Redirection with iron-router and onBeforeAction on meteor app
我有一个 meteor 应用程序和包 iron-router
,如果用户未连接,我会尝试阻止所有页面,除了几个页面。如果未指定任何内容,我们将进入登录页面。
所以在文件 router.js 中,我有:
Router.onBeforeAction(function() {
if (!Meteor.userId()) {
Router.go('login');
} else {
this.next();
}
}, {
except: [
"login", "landing", "register", "forgotPassword"
]
});
Router.route('/', function () {
Router.go('landing');
});
但是当我继续 localhost:3000/
我被重定向到登录页面而不是登录页面。
如果我删除 onBeforeAction 函数,我将重定向到登录页面。
所以这两个功能一定有问题,但我不知道在哪里。也许我需要在异常中精确说明“/”,但它不起作用。你有什么想法吗?
您也需要在异常中定义路由 '/'
,否则会被 onBeforeAction
捕获
尝试重新定义如下
Router.onBeforeAction(function() {
if (!Meteor.userId()) {
Router.go('login');
} else {
this.next();
}
}, {
except: [
"default", "login", "landing", "register", "forgotPassword"
]
});
Router.route('/', function () {
Router.go('landing');
}, {
name: "default"
} );
在这种情况下,您为路线命名,然后您可以将其添加到您的例外列表中
我有一个 meteor 应用程序和包 iron-router
,如果用户未连接,我会尝试阻止所有页面,除了几个页面。如果未指定任何内容,我们将进入登录页面。
所以在文件 router.js 中,我有:
Router.onBeforeAction(function() {
if (!Meteor.userId()) {
Router.go('login');
} else {
this.next();
}
}, {
except: [
"login", "landing", "register", "forgotPassword"
]
});
Router.route('/', function () {
Router.go('landing');
});
但是当我继续 localhost:3000/
我被重定向到登录页面而不是登录页面。
如果我删除 onBeforeAction 函数,我将重定向到登录页面。 所以这两个功能一定有问题,但我不知道在哪里。也许我需要在异常中精确说明“/”,但它不起作用。你有什么想法吗?
您也需要在异常中定义路由 '/'
,否则会被 onBeforeAction
尝试重新定义如下
Router.onBeforeAction(function() {
if (!Meteor.userId()) {
Router.go('login');
} else {
this.next();
}
}, {
except: [
"default", "login", "landing", "register", "forgotPassword"
]
});
Router.route('/', function () {
Router.go('landing');
}, {
name: "default"
} );
在这种情况下,您为路线命名,然后您可以将其添加到您的例外列表中