Skip to content

Commit a080bb2

Browse files
authored
Merge pull request #152 from timelf123/ui-router-1.0.0
UI router 1.0.0 support
2 parents 37407f0 + 828a296 commit a080bb2

File tree

3 files changed

+75
-37
lines changed

3 files changed

+75
-37
lines changed

dist/angular-jwt.js

100755100644
Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,24 @@ angular.module('angular-jwt.authManager', [])
5656
$rootScope.isAuthenticated = false;
5757
}
5858

59-
function checkAuthOnRefresh() {
60-
$rootScope.$on('$locationChangeStart', function () {
61-
var token = invokeToken(config.tokenGetter);
62-
if (token) {
63-
if (!jwtHelper.isTokenExpired(token)) {
64-
authenticate();
65-
} else {
66-
$rootScope.$broadcast('tokenHasExpired', token);
67-
}
59+
function validateToken() {
60+
var token = invokeToken(config.tokenGetter);
61+
if (token) {
62+
if (!jwtHelper.isTokenExpired(token)) {
63+
authenticate();
64+
} else {
65+
$rootScope.$broadcast('tokenHasExpired', token);
6866
}
69-
});
67+
}
68+
}
69+
70+
function checkAuthOnRefresh() {
71+
if ($injector.has('$transitions')) {
72+
var $transitions = $injector.get('$transitions');
73+
$transitions.onStart({}, validateToken);
74+
} else {
75+
$rootScope.$on('$locationChangeStart', validateToken);
76+
}
7077
}
7178

7279
function redirectWhenUnauthenticated() {
@@ -83,17 +90,29 @@ angular.module('angular-jwt.authManager', [])
8390

8491
var routeData = (next.$$route) ? next.$$route : next.data;
8592

86-
if (routeData && routeData.requiresLogin === true) {
87-
var token = invokeToken(config.tokenGetter);
88-
if (!token || jwtHelper.isTokenExpired(token)) {
89-
event.preventDefault();
90-
invokeRedirector(config.unauthenticatedRedirector);
91-
}
93+
if (routeData && routeData.requiresLogin === true && !isAuthenticated()) {
94+
event.preventDefault();
95+
invokeRedirector(config.unauthenticatedRedirector);
9296
}
9397
}
9498

95-
var eventName = ($injector.has('$state')) ? '$stateChangeStart' : '$routeChangeStart';
96-
$rootScope.$on(eventName, verifyRoute);
99+
function verifyState(transition) {
100+
var route = transition.to();
101+
var $state = transition.router.stateService;
102+
if (route && route.data && route.data.requiresLogin === true && !isAuthenticated()) {
103+
return $state.target(config.loginPath);
104+
}
105+
}
106+
107+
if ($injector.has('$transitions')) {
108+
var $transitions = $injector.get('$transitions');
109+
$transitions.onStart({}, verifyState);
110+
} else {
111+
var eventName = ($injector.has('$state')) ? '$stateChangeStart' : '$routeChangeStart';
112+
$rootScope.$on(eventName, verifyRoute);
113+
}
114+
115+
97116

98117
return {
99118
authenticate: authenticate,

dist/angular-jwt.min.js

100755100644
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/angularJwt/services/authManager.js

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,24 @@ angular.module('angular-jwt.authManager', [])
4040
$rootScope.isAuthenticated = false;
4141
}
4242

43-
function checkAuthOnRefresh() {
44-
$rootScope.$on('$locationChangeStart', function () {
45-
var token = invokeToken(config.tokenGetter);
46-
if (token) {
47-
if (!jwtHelper.isTokenExpired(token)) {
48-
authenticate();
49-
} else {
50-
$rootScope.$broadcast('tokenHasExpired', token);
51-
}
43+
function validateToken() {
44+
var token = invokeToken(config.tokenGetter);
45+
if (token) {
46+
if (!jwtHelper.isTokenExpired(token)) {
47+
authenticate();
48+
} else {
49+
$rootScope.$broadcast('tokenHasExpired', token);
5250
}
53-
});
51+
}
52+
}
53+
54+
function checkAuthOnRefresh() {
55+
if ($injector.has('$transitions')) {
56+
var $transitions = $injector.get('$transitions');
57+
$transitions.onStart({}, validateToken);
58+
} else {
59+
$rootScope.$on('$locationChangeStart', validateToken);
60+
}
5461
}
5562

5663
function redirectWhenUnauthenticated() {
@@ -67,17 +74,29 @@ angular.module('angular-jwt.authManager', [])
6774

6875
var routeData = (next.$$route) ? next.$$route : next.data;
6976

70-
if (routeData && routeData.requiresLogin === true) {
71-
var token = invokeToken(config.tokenGetter);
72-
if (!token || jwtHelper.isTokenExpired(token)) {
73-
event.preventDefault();
74-
invokeRedirector(config.unauthenticatedRedirector);
75-
}
77+
if (routeData && routeData.requiresLogin === true && !isAuthenticated()) {
78+
event.preventDefault();
79+
invokeRedirector(config.unauthenticatedRedirector);
7680
}
7781
}
7882

79-
var eventName = ($injector.has('$state')) ? '$stateChangeStart' : '$routeChangeStart';
80-
$rootScope.$on(eventName, verifyRoute);
83+
function verifyState(transition) {
84+
var route = transition.to();
85+
var $state = transition.router.stateService;
86+
if (route && route.data && route.data.requiresLogin === true && !isAuthenticated()) {
87+
return $state.target(config.loginPath);
88+
}
89+
}
90+
91+
if ($injector.has('$transitions')) {
92+
var $transitions = $injector.get('$transitions');
93+
$transitions.onStart({}, verifyState);
94+
} else {
95+
var eventName = ($injector.has('$state')) ? '$stateChangeStart' : '$routeChangeStart';
96+
$rootScope.$on(eventName, verifyRoute);
97+
}
98+
99+
81100

82101
return {
83102
authenticate: authenticate,

0 commit comments

Comments
 (0)