Meteor 需要登录所有页面,如果没有登录则重定向到登录 iron:router
Meteor require login for all pages and redirect to login if not loggingIn iron:router
我有一个问题,我想做一个应用程序网络,其中所有页面都需要登录身份验证(如 facebook),但我找不到如何在用户登录时将他重定向到主页。当我想强迫他去登录页面时。
我正在使用 iron:router、account:login 和 coffeescript
提前致谢
OnBeforeActions = loginRequired: () ->
if !Meteor.user()
if Meteor.loggingIn()
else
Router.go 'login'
else
Router.go 'home'
Router.onBeforeAction OnBeforeActions.loginRequired, only: [
'home'
'models'
'photographers'
'createProfil'
'createProject'
]
Router.route '/login', (->
@render 'login'),
name: 'login',
layoutTemplate: 'loginLayout'
在你的挂钩中,你需要检查用户是否登录,如果他们没有登录,那么你将路由器重定向到登录页面并停止加载当前路由。如果是,那么您将继续加载当前路线。我还建议使用 except:
而不是 only:
如果你希望这个钩子在除 login
.
之外的每个页面上都指向 运行
这是一个 javascript 相当于你需要做的事情(我知道它有效):
Router.onBeforeAction(function () {
if (!Meteor.userId() && !Meteor.loggingIn()) {
this.redirect('login');
this.stop();
} else {
this.next();
}
},{except: ['login'] });
在 coffeescript 中(我没有测试过,因为我自己不使用 coffeescript):
Router.onBeforeAction (->
if !Meteor.userId() and !Meteor.loggingIn()
@redirect 'login'
@stop()
else
@next()
return
), except: [ 'login' ]
要在登录后重定向用户,请添加 onLogin
挂钩。
Accounts.onLogin(function () {
Router.go('home');
})
同样,在咖啡中(未经测试):
Accounts.onLogin ->
Router.go 'home'
return
以下函数将检查用户是否已登录。如果没有,它将检查 he/she 当前是否正在登录。如果两种情况都为假,我会将用户定向到具有名称的路由'login'。
loginRequired = function () {
if (!Meteor.user()) {
if (!Meteor.loggingIn()) {
this.render('login');
}
} else {
this.next();
}
};
Router.onBeforeAction(loginRequired, {except: 'login'});
我有一个问题,我想做一个应用程序网络,其中所有页面都需要登录身份验证(如 facebook),但我找不到如何在用户登录时将他重定向到主页。当我想强迫他去登录页面时。 我正在使用 iron:router、account:login 和 coffeescript
提前致谢
OnBeforeActions = loginRequired: () ->
if !Meteor.user()
if Meteor.loggingIn()
else
Router.go 'login'
else
Router.go 'home'
Router.onBeforeAction OnBeforeActions.loginRequired, only: [
'home'
'models'
'photographers'
'createProfil'
'createProject'
]
Router.route '/login', (->
@render 'login'),
name: 'login',
layoutTemplate: 'loginLayout'
在你的挂钩中,你需要检查用户是否登录,如果他们没有登录,那么你将路由器重定向到登录页面并停止加载当前路由。如果是,那么您将继续加载当前路线。我还建议使用 except:
而不是 only:
如果你希望这个钩子在除 login
.
这是一个 javascript 相当于你需要做的事情(我知道它有效):
Router.onBeforeAction(function () {
if (!Meteor.userId() && !Meteor.loggingIn()) {
this.redirect('login');
this.stop();
} else {
this.next();
}
},{except: ['login'] });
在 coffeescript 中(我没有测试过,因为我自己不使用 coffeescript):
Router.onBeforeAction (->
if !Meteor.userId() and !Meteor.loggingIn()
@redirect 'login'
@stop()
else
@next()
return
), except: [ 'login' ]
要在登录后重定向用户,请添加 onLogin
挂钩。
Accounts.onLogin(function () {
Router.go('home');
})
同样,在咖啡中(未经测试):
Accounts.onLogin ->
Router.go 'home'
return
以下函数将检查用户是否已登录。如果没有,它将检查 he/she 当前是否正在登录。如果两种情况都为假,我会将用户定向到具有名称的路由'login'。
loginRequired = function () {
if (!Meteor.user()) {
if (!Meteor.loggingIn()) {
this.render('login');
}
} else {
this.next();
}
};
Router.onBeforeAction(loginRequired, {except: 'login'});