[英]Display login page and return back to previous route/page with Flowrouter
我想構建一個方案,如果用戶想要訪問安全頁面並且沒有登錄,他們將被重定向到這樣的登錄頁面。
FlowRouter.route('/add',{
name: 'add',
triggersEnter: [function(context, redirect) {
if(!Meteor.userId()){
redirect('login/add');
}
}],
action(){
BlazeLayout.render('noHeroLayout', {
main: 'add'
});
}
});
基本上,安全頁面“添加”會檢查用戶是否已登錄,如果沒有重定向到登錄/添加,則會進行檢查。 調用登錄路由后,它將檢查是否提供了鏈接回路徑,如下所示:
FlowRouter.route('/login/:callback',{
name: 'login',
action(){
BlazeLayout.render('noHeroLayout', {
main: 'login'
});
}
});
FlowRouter.route('/login',{
name: 'login',
action(){
BlazeLayout.render('noHeroLayout', {
main: 'login'
});
}
});
現在,對於我的login.js邏輯,它看起來像這樣
'submit #app-login-user-internal': function(e,t){
e.preventDefault();
var email = t.find('#app-email-login-internal').value;
var password = t.find('#app-password-login-internal').value;
Meteor.loginWithPassword(email,password,function(err){
if(err){
alert("Wrong Credentials");
}
else{
var callback = FlowRouter.getParam('callback');
if(!callback){
FlowRouter.go('home');
}
else{
FlowRouter.go(callback);
}
}
});
},
如果用戶未登錄,則登錄時如果登錄路由中存在回調,則基本上在提交時重定向到該回調路由。
我的問題是,當沒有提供回調時,我將被重定向到家里而沒有任何問題。 當我未登錄時調用“添加”時,在控制台上出現以下錯誤。
There is no route for the path: login/add
關於如何解決這個問題有什么想法嗎? 感謝您的閱讀。
將您的重定向更改為此
redirect('/login/add');
添加一個斜線。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.