2016-03-27 2 views
1

Я разрабатываю приложение AngularJS, где безопасность вызывает большую озабоченность. Мне интересно, могу ли я реализовать следующую архитектуру:Загрузка маршрутов только после входа пользователя в систему

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

Это потому, что я не хочу раскрывать все маршруты в коде, чтобы избежать того, чтобы кто-то возился с ним и пытался получить доступ к маршрутам, доступ к которым разрешен только авторизованным пользователям. Я знаю, что могу реализовать фильтры, чтобы разрешать доступ только к определенным маршрутам, но я не хочу раскрывать защищенные (в коде) вообще.

Правильно ли этот подход? Есть ли способ его реализовать?

+0

Если вы не хотите раскрывать маршруты вообще, вы можете использовать страницу входа на серверную страницу, которая затем загружает угловое приложение. Не обязательно включать перенаправление ... просто вывести применимый html/js в зависимости от определения сервера auth status – charlietfl

+0

@charlietfl Я понимаю, но я не хочу использовать код на стороне сервера. Я хочу, чтобы интерфейс имел только статический контент, который может обслуживать CDN. – karliwson

+0

В этом случае действительно нет никакого способа полностью предотвратить доступ к сценариям, и, следовательно, URL-адрес маршрута, так как даже если вы используете ленивые сценарии загрузки, для них должен быть использован URL-адрес основного сценария. С учетом сказанного вы можете достоверно предотвратить доставку данных из API для неавторизованных пользователей – charlietfl

ответ

0

Ваше лучшее решение (на мой взгляд) состоит в том, чтобы создать 2 отдельных приложения углов: сначала для входа/регистрации, забыли пароль, второй для личных вещей.

По этой причине вы должны использовать 2 отдельных html-файла (предположительно на основе сервера) с другим списком файлов .js. Частный index.html должен быть защищен от прямого доступа со стороны сервера.

Кроме того, имейте в виду, что вы можете загрузить js файлов динамически.

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