나는 간단한 jhipster 앱을 가지고 있습니다. 인증 된 사용자가 url
에 대한 홈 페이지로 리디렉션되도록하고 싶습니다.잘못된 URL 히트에 대한 인증 된 사용자 홈 페이지로 리디렉션
home.state.js
(function() {
'use strict';
angular
.module('anvilIqApp')
.config(stateConfig);
stateConfig.$inject = ['$stateProvider'];
function stateConfig($stateProvider) {
$stateProvider.state('home', {
parent: 'app',
url: '/home',
data: {
authorities: ['ROLE_USER']
},
views: {
'[email protected]': {
templateUrl: 'app/home/home.html',
controller: 'HomeController',
controllerAs: 'vm'
}
},
resolve: {
mainTranslatePartialLoader: ['$translate', '$translatePartialLoader', function ($translate,$translatePartialLoader) {
$translatePartialLoader.addPart('home');
return $translate.refresh();
}]
}
});
}
})();
login.state.js
(function() {
'use strict';
angular
.module('anvilIqApp')
.config(stateConfig);
stateConfig.$inject = ['$stateProvider'];
function stateConfig($stateProvider) {
$stateProvider.state('login', {
parent: 'app',
url: '/',
data: {
authorities: []
},
views: {
'[email protected]': {
templateUrl: 'app/components/login/login.html',
controller: 'LoginController',
controllerAs: 'vm'
}
},
resolve: {
mainTranslatePartialLoader: ['$translate', '$translatePartialLoader', function ($translate,$translatePartialLoader) {
$translatePartialLoader.addPart('login');
return $translate.refresh();
}]
}
});
}
})();
당신이 볼 수 있듯이을의 아래에 언급 한 바와 같이 이전에 나는 home.state.js
을 변경하고 login.state.js
을 추가했다 root가 이제 로그인 페이지입니다. 인증 된 사용자가 url
을 잘못 입력하면 평소처럼 로그인 페이지가 나타납니다. 잘못된 URL 조회가 발생하여 사용자를 /home
(으)로 리디렉션하고 싶습니다.
function authThen() {
var isAuthenticated = Principal.isAuthenticated();
// an authenticated user can't access to login and register pages
if (isAuthenticated && $rootScope.toState.parent === 'account' && ($rootScope.toState.name === 'login' || $rootScope.toState.name === 'register')) {
$state.go('home');
}
// recover and clear previousState after external login redirect (e.g. oauth2)
if (isAuthenticated && !$rootScope.fromState.name && getPreviousState()) {
var previousState = getPreviousState();
resetPreviousState();
$state.go(previousState.name, previousState.params);
}
if ($rootScope.toState.data.authorities && $rootScope.toState.data.authorities.length > 0 && !Principal.hasAnyAuthority($rootScope.toState.data.authorities)) {
if (isAuthenticated) {
// user is signed in but not authorized for desired state
$state.go('accessdenied');
}
else {
// user is not authenticated. stow the state they wanted before you
// send them to the login service, so you can return them when you're done
storePreviousState($rootScope.toState.name, $rootScope.toStateParams);
// now, send them to the signin state so they can log in
$state.go('accessdenied').then(function() {
$state.go('login');
});
}
}
}
덕분에 많은 ... – fatCop