启动时出现Keyclock AngularJs集成问题

时间:2019-11-20 10:14:04

标签: javascript angularjs keycloak

我在带有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() {});

  });

})();

0 个答案:

没有答案