2014-11-20 4 views
1

В моем приложении стартовый адрес localhost:3000 принимает меня на странице входа в систему, и после того, как я вхожу в систему, это займет /afterlogin, а теперь все, что отлично работает, как только я удалю /afterlogin, и введите, что потребуется страница входа в систему, как только заблокировать этот URL после входа в систему и остаться на главной странице в метеоре?Экспорт данных таблицы в excel в meteor

+0

Что это нужно делать с Excel? –

+0

Извините, что это мой вопрос предварительного просмотра, я забыл удалить этот тег. Я прошу прощения за это. –

ответ

1

Вместо того, чтобы использовать/в качестве URL-адреса для входа пользователя, чем больше «Метеор.js» нужно делать, это использовать условную логику в основном шаблоне для целевой страницы вашего сайта. Документация Meteor для Accounts объясняет, что приложения должны:

Используйте {{#if currentUser}}, чтобы проверить, является ли пользователь, вошедший в

Отъезд login example application, чтобы увидеть, как {{#if currentUser}} применяется на практике.. Я скопировал шаблон ниже для удобства:

<template name="main"> 
    {{#if loggingIn}} 
    <div class="loading">Loading...</div> 
    {{else}} 
    {{#if currentUser}} 
     <div class="msgDiv"> 
     Signed in as: {{currentUser.services.google.email}} 
     </div> 
     <a href="#" id="logout">Sign out</a> 
    {{else}} 
     <a href="#" id="login">Sign In With Google</a> 
    {{/if}} 
    {{/if}} 
    <div class="msgDiv"> 
    Client can see {{numGizmos}} gizmos. 
    </div> 
</template> 

В «основном» шаблоне, вы можете увидеть, что приложение использует Spacebars для проверки следующих условий:

  • если loggingIn верно (пользователь входа в систему), отображается экран загрузки
  • если loggingIn является false И currentUser является true (пользователь уже вошел в систему), отображается экран с подписанным в информации пользователя
  • если loggingIn является false И currentUser является false (пользователь не вошел в систему еще), отобразить приглашение войти в

Примечание: в данном примере приложения, они демонстрируют логин с пакетом accounts-google аутентификации, но вы можете использовать тот же шаблон для базового входа accounts-password. Другие пакеты аутентификации включают accounts-facebook, accounts-github, accounts-twitter и пакеты сообщества.

Если вы используете iron:router в вашем приложении, то вы можете также обеспечить URL-приложения с логикой, как следующее (взято из документации):

Router.onBeforeAction(function() { 
    if (! Meteor.userId()) { 
    this.render('login'); 
    } else { 
    this.next(); 
    } 
}); 
+0

Поскольку у меня недостаточно репутации, я не могу опубликовать ссылку на документы «iron: router». Вот он: https://atmospherejs.com/iron/router –

Смежные вопросы