2016-03-16 6 views
1

Я был бы признателен за некоторые отзывы по поводу моего кода перенаправления Iron-Router.Iron-Router Login and Register best practice

Я намерен только разрешить вход в систему пользователям получать доступ к маршрутам другой, чем войти или зарегистрироваться и перенаправить других пользователей для входа с кодом ошибки.

// routes.js with Router.beforeAction 
if (!Meteor.userId()) { 
    // Get current route 
    var currentRoute = Router.current().route.getName(); 
    // if the current user is not trying to login or register send to login with error 
    if (currentRoute = 'register'){ 
     this.layout('login'); 
     this.render('registerview'); 
    } else if (currentRoute = 'login') { 
     this.layout('login'); 
     this.render('loginview'); 
    } else { 
     Session.set("errorMessage", "You need to log in to access this page."); 
     this.redirect('/login'); 
    } 
} else { 
    // otherwise don't hold up the rest of hooks or our route/action function 
    // from running 
    this.next(); 
} 

Это работает, но я был бы признателен за некоторые отзывы об эффективности и хорошем коде.

Также мой файл routes.js находится в/client, я знаю, что логин входа должен быть отправлен методам сервера, но есть ли проблема безопасности для файла маршрута?

ответ

2

С точки зрения логики, я мог бы сказать, что все в порядке. Но я бы сделал это по-другому: Я обычно делаю все тесты в крюке onBeforeAction(). Я выполняю проверки с использованием функций, и если все проверки проходят, я вызываю this.next(). Если есть ошибка, маршрутизатор перенаправляет (используя Router.go()) маршрут, который может видеть незарегистрированный пользователь. Что касается папки, я размещаю router. js в папке root/lib. Пример:

Router.onBeforeAction(mustBeSignedIn, {only: [the templates you want to check]}); 
+0

Таким образом, обратная связь тогда задает тесты как функции и вызывает их таким образом. Я тоже редактирую ответ. – StefanL19

+0

shti go editna: D –

+0

Нравится?: Http://codepen.io/SlartyBArtfast/pen/wGgGMZ – SlartyBartfast