Отображение страницы входа и возврат к предыдущему маршруту/странице с помощью 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

Любые идеи о том, как я могу это решить? Спасибо за чтение.


person BaconJuice    schedule 04.12.2015    source источник


Ответы (1)


Измените перенаправление на это

redirect('/login/add');

Добавьте косую черту.

person Mat.    schedule 04.12.2015