#javascript #angular #typescript
#javascript #angular #typescript
Вопрос:
Я работаю над проектом в angular2. Он состоит из двух частей: первая часть — логин, а другая — панель управления. Я хочу разработать часть входа в одно приложение и часть панели инструментов в другом приложении.
Проблема в том, что я не могу загрузить приложение dashboard после входа в приложение на той же странице.
Я нашел ссылку, по которой они загружают два приложения на одной странице, но я хочу загружать одно приложение одновременно на одной странице.
Ссылка, по которой они загружают два приложения на одной странице, является:
Загрузка нескольких приложений Angular 2 на одной странице
Основная цель для этого: безопасность
Предположим, что пользователь хочет войти в систему, я хочу Dashboard
, чтобы приложение загружалось Angular2 отдельно.
Почему я не использую отдельные компоненты, потому что я не хочу раскрывать другие компоненты, которые загружаются вместе с Login
компонентом.
Комментарии:
1. «Я хочу разработать часть входа в одно приложение и часть панели инструментов в другом приложении». — Почему бы не просто 1 приложение, инкапсулирующее два основных компонента?
2. «Я хочу разработать часть входа в одно приложение и часть панели инструментов в другом приложении». а затем «Но я хочу загружать одно приложение одновременно на одной странице. » что вы имеете в виду?
3. Я думаю, он имеет в виду, что хочет загрузить login на одной странице, а остальные приложения — на другой странице. Рассматривая «страницу» из того, что мы подразумеваем под «одностраничным приложением». @yurzui
Ответ №1:
Я вижу здесь два основных варианта (я уверен, что есть и другие):
Вариант 1: отдельные приложения для входа и панели мониторинга
Вы могли бы сделать так, чтобы у каждого вашего приложения для входа и панели мониторинга были свои собственные URL-адреса, например https://myhost:1234/login и https://myhost:1234/dash .
Когда пользователи пытаются перейти в /dash, сервер проверяет, вошли ли они в систему, и перенаправляет на /login, если это не так. Когда пользователи входят в систему через /login , сервер настраивает сеанс, а затем перенаправляет на /dash .
Вариант 2:
Используйте защиту на маршрутизаторе, которая не позволяет пользователю переходить к панели мониторинга, если они не вошли в систему.
Пример использования guards см. В Примере приложения TempHire. В этом примере защитник выполняет ajax-вызов на сервер и использует ответ, чтобы определить, следует ли продолжать. (Ответ также передает клиенту метаданные Breeze, но это потому, что это приложение Breeze.)