簡體   English   中英

顯示登錄頁面並使用Flowrouter返回上一條路線/頁面

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM