Информацию об авторизованном пользователе я решил хранить в sessionStorage, копируя её при запуске приложения в
$rootScope
. Также по рекомендации авторов UI Router я храню в $rootScope значения объекты $state
и $stateParam
, для удобного доступа. Информацию же о доступе к тому или иному состоянию можно передавать через блок data
при описании самого состояния. Поскольку в моем приложении везде закрыт доступ, я решил идти от обратного и добавлять значение noLogin = true
для состояний, которые не требуют авторизации, например страницы ввода логина, восстановления пароля или регистрации.angular.module('myApp.auth', [
'ui.router'
])
.config(['$stateProvider', '$urlRouterProvider',
function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('auth', {
url: '/auth',
abstract: true,
template: ''
})
.state('auth.login', {
url: '/login',
templateUrl: 'src/auth/partials/login.html',
data: {
'noLogin': true
}
});
]);