我在带有Keyclock的AngularJs中使用以下代码: 当我运行以下代码时,出现以下错误:
错误
angular.js:99未捕获的错误:[$ injector:modulerr] errors.angularjs.org/1.7.7/$injector/modulerr?p0=myAuthApp&p1=TypeError%3A%20Cannot%20read%20property%20'isTokenExpired'%20of%20undefined%0A%20%20%20%20%20at
任何想法,我在这里犯了什么错误。
(function() {
'use strict';
angular.module('myAuthApp', [
'ui.router',
'ngResource',
'ui.select',
'ngSanitize',
'ui.bootstrap',
'ng.deviceDetector',
'myAuthApp.service',
'myAuthApp.component',
'myAuthApp.landingPage'
]).constant('searchApi', 'rest/search')
.constant('imageApi', 'rest/Image/')
.constant('detailApi', 'rest/Details/')
.constant('getGraphAPI', '/rest/getGraph')
.config(['$httpProvider', function($httpProvider) {
//If checking window._keycloak for null, then the application goes in infinite loop.
// Else
var isExpired = window._keycloak.isTokenExpired();
if (isExpired) {
window._keycloak.updateToken(5)
.success(function() {})
.error(function() {});
}
}]);
/**
* Provide keycloak as factory to make it injectable
*/
angular.module('myAuthApp').factory('authorization', function($window) {
return $window._keycloak;
});
/**
* Initializes keycloak on application startup
*/
angular.element(document).ready(function($http, $scope) {
window._keycloak = Keycloak('keycloak.json');
//localStorage.isKeycloakTokenExpired = window._keycloak.isTokenExpired();
window._keycloak.init({}).success(function(authenticated) {
/**
* Auth service for landing page
*/
angular.module('myAuthApp').factory('Auth', function() {
var Auth = {};
///** Logout from Keycloak*/
Auth.logout = function() {
window._keycloak.logout();
}
///** Load the officer information to show in Search header*/
Auth.loadUserInfo = function() {
return window._keycloak.tokenParsed;
}
return Auth;
});
/**
* If user is authenticated load the application, otherwise redirect to Keycloak IDP login page
*/
if (authenticated) {
window._keycloak.loadUserProfile().success(function(profile) {
angular.bootstrap(document, ['myAuthApp']);
});
} else {
window._keycloak.login({
idpHint: 'saml-https-test' //use this for dummy IDP
//idpHint: 'saml' //use this to test ADFS
});
}
}).error(function() {});
});
})();
(function() {
'use strict';
angular.module('myAuthApp', [
'ui.router',
'ngResource',
'ui.select',
'ngSanitize',
'ui.bootstrap',
'ng.deviceDetector',
'myAuthApp.service',
'myAuthApp.component',
'myAuthApp.landingPage'
]).constant('searchApi', 'rest/search')
.constant('imageApi', 'rest/Image/')
.constant('detailApi', 'rest/Details/')
.constant('getGraphAPI', '/rest/getGraph')
.config(['$httpProvider', function($httpProvider) {
//If checking window._keycloak for null, then the application goes in infinite loop.
//
var isExpired = window._keycloak.isTokenExpired();
if (isExpired) {
window._keycloak.updateToken(5)
.success(function() {})
.error(function() {});
}
}]);
/**
* Provide keycloak as factory to make it injectable
*/
angular.module('myAuthApp').factory('authorization', function($window) {
return $window._keycloak;
});
/**
* Initializes keycloak on application startup
*/
angular.element(document).ready(function($http, $scope) {
window._keycloak = Keycloak('keycloak.json');
//localStorage.isKeycloakTokenExpired = window._keycloak.isTokenExpired();
window._keycloak.init({}).success(function(authenticated) {
/**
* Auth service for landing page
*/
angular.module('myAuthApp').factory('Auth', function() {
var Auth = {};
///** Logout from Keycloak*/
Auth.logout = function() {
window._keycloak.logout();
}
///** Load the officer information to show in Search header*/
Auth.loadUserInfo = function() {
return window._keycloak.tokenParsed;
}
return Auth;
});
/**
* If user is authenticated load the application, otherwise redirect to Keycloak IDP login page
*/
if (authenticated) {
window._keycloak.loadUserProfile().success(function(profile) {
angular.bootstrap(document, ['myAuthApp']);
});
} else {
window._keycloak.login({
idpHint: 'saml-https-test' //use this for dummy IDP
//idpHint: 'saml' //use this to test ADFS
});
}
}).error(function() {});
});
})();