Angular2 загружает два приложения одно за другим на одной странице

#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.)