Ну, я родом из ngRoute
, и я только начал изучать uiRouter
.
Я использовал два разных угловых приложения для входа в систему (login.html) и один для основного приложения (index.html). В нем я просто проверяю, аутентифицирован ли пользователь, а затем перенаправляет их на index.html, иначе на login.html.
Теперь я хочу инкапсулировать вход в основное приложение. У меня много состояний, требующих входа пользователя. Во многих из них исправлены некоторые части, такие как верхний и нижний колонтитулы. Я ищу конкретное решение, чтобы справиться с этим соображениями:
resolve
для всех состояний, которым требуется аутентификация./some-prefix-for-authed-paths/...
для состояний, требующих аутентификации./error
чего-то, потому что на самом деле это не имеет смысла! Кроме того, я не хочу, чтобы в браузере происходило состояние.Вы можете попытаться реализовать httpInterceptor, который ловит все запросы без 2xx и перенаправляет на какую-то страницу ошибки/входа.
Также для проверки подлинности вы можете использовать событие uiRouter onStateChange, добавив уровень доступа к своим состояниям
.state('someState', {
url: '/someUrl',
isPrivate: true
})
$rootScope.$on('$stateChangeStart',
function(event, toState, toParams, fromState, fromParams){
event.preventDefault();
// Check if state is private
if(toState.isPrivate) {
// Do something
}
});
Заметка! Это всего лишь несколько псевдокодов