2013-03-29 2 views
2

Это было предложено в аналогичных формах here и here, но это, кажется, очень важно, и эта структура в условиях быстрого развития, поэтому я собираюсь поднять его снова:Meteor.js - разрешения шаблона

Предположим, что ваш логин страница должна противостоять общедоступному интернету, как вы мешаете Метеору отправлять все аутентифицированные пользовательские шаблоны клиенту, не прошедшему проверку подлинности?

Пример использования: у вас есть действительно уникальные аналитические показатели/показатели эффективности, которые вы хотите сохранить в секрете. Вы создали шаблоны для визуализации каждого из них. Просто посетив страницу входа в систему, Meteor отправит любые rando шаблоны, которые, даже незаселенные, раскрывают тонну конфиденциальной информации.

Я видел два предложения:

  1. Перерыв администратора в отдельном приложении. Это не относится к проблеме, предполагая, что вход администратора связан с общедоступным Интернетом, если только я что-то не упускаю.
  2. Поместите шаблоны в папку public или ее эквивалент и загрузите их динамически. Это не помогает, так как имена файлов будут видны из других шаблонов, которые будут отправлены клиенту.

Единственное, что я могу думать о том, чтобы хранить строки шаблона в папке server и есть клиент вызова Meteor.method после входа в систему для получения и визуализации их. И если вы хотите, чтобы они вели себя как обычные клиентские шаблоны, вам придется гадать с помощью внутреннего API (например, Meteor._def_template).

Есть ли более элегантный способ сделать это?

+0

На данный момент это самые изящные способы сделать это! Думаю, ты тоже мог посмотреть на метеориту? Более элегантным является использование методов метеорита для отправки шаблонов вниз и .def_templates для загрузки их в метеорит. – Akshat

+0

Я не видел метеоритов, но только нашел его. Для других соответствующий поток [здесь] (https://groups.google.com/forum/?fromgroups=#!searchin/meteor-talk/templates/meteor-talk/F3DnoieDK00/xQn5Z1jCc5UJ). – mukmuk

+0

Я был тем, кто начал тему, поэтому, я думаю, мне нужно закончить мой фрагмент кода, который делает все это и нажимать на github. – Akshat

ответ

0

Я задал подобный вопрос здесь: Segmented Meteor App(s) - loading only half the client or two apps sharing a database

Кажется, общее беспокойство, и я, конечно, думаю, что это то, что следует рассматривать то.

До тех пор, я планирую сделать меньше «общественное» приложение и обмена БД с приложением администратора (возможно, в Метеоре, возможно, в чем-то еще, в зависимости от размера/данных для моего администратора)

0

Эти 2 пакета пытаются решить эту проблему:
https://atmospherejs.com/numtel/publicsources
https://atmospherejs.com/numtel/privatesources

Он использует железо-маршрутизатор плагин для загрузки ваших конкретных файлов на каждом маршруте.

Основной недостаток я вижу в том, что вы должны изменить структуру приложения, так как защищенные файлы должны быть сохранены в /общественном или /частной папке.
Также вы должны использовать железный маршрутизатор.

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