2015-01-29 7 views
4

Я использую Keycloak.js для взаимодействия с Keycloak и получать ниже ошибкиKeycloak Неизвестная ошибка поставщика

Uncaught Error: [$injector:unpr] Unknown provider: AuthProvider <- Auth <- authInterceptor <- $http <- $templateRequest <- $compile 

С ниже код:

module.factory('authInterceptor', ['$q', 'Auth', function($q, Auth) { 
    return { 
    request: function (config) { 
     var deferred = $q.defer(); 
     if (Auth.authz.token) { 
     Auth.authz.updateToken(5).success(function() { 
      config.headers = config.headers || {}; 
      config.headers.Authorization = 'Bearer ' + Auth.authz.token; 

      deferred.resolve(config); 
     }).error(function() { 
      deferred.reject('Failed to refresh token'); 
     }); 
     } 
     return deferred.promise; 
    } 
    }; 
}]); 

module.config(['$httpProvider', function($httpProvider) { 
    $httpProvider.responseInterceptors.push('errorInterceptor'); 
    $httpProvider.interceptors.push('authInterceptor'); 
}]); 

Есть ли причина, почему это происходит?

Я также включая keycloak.js в моей index.html, который вставляется с Бауэром

у меня также есть ниже Auth завода экземплярам внутри Dóm готов:

angular.element(document).ready(function($http) { 
    var keycloakAuth = new Keycloak('keycloak.json'); 
    auth.loggedIn = false; 

    keycloakAuth.init().success(function() { 
    auth.loggedIn = true; 
    auth.authz = keycloakAuth; 
    auth.logoutUrl = keycloakAuth.authServerUrl + "/realms/demo/tokens/logout?redirect_uri=http://localhost:3000"; 
    module.factory('Auth', function() { 
     return auth; 
    }); 
    }).error(function() { 
    window.location.reload(); 
    }); 
}); 

ответ

1

проблема заключается в том, что вы инстанцировании «Auth» на dom готово, но инжектор dependecy пытается ввести перед домом (упрощая).

Вопрос в том, почему на дом готов?

вот два примера:

http://jsbin.com/lulin/1/edit (с на йот готовым определению, не работает, та же ошибка)

http://jsbin.com/wajeho/2/edit (без на йот готового определения, работа)


EDIT:

Вы должны сделать что-то вроде этого: http://jsbin.com/xusiva/1/edit?html,js,console

Я занимаюсь производством за пределами дома и внутри контроллера после того, как я уже использовал его.

+0

Это наготове, поэтому я могу сделать его подлинным. Я не уверен, что это должно быть в функции index.js config вместо –

+0

проблема даже тогда, когда я удаляю dom ready. Я получаю такую ​​же ошибку. –

+0

В вашем примере, почему это работает, когда вы добавляете [] во второй параметр в модуле, но когда я удаляю его, он не работает? –

0

У меня такая же проблема, пока я могу сказать, что пример keycloak работает с угловым 1.2, и вы, вероятно, используете последнюю версию 1.3. Если вы попробуете угловой пример keycloak с угловым 1.2, он работает, но когда вы попробуете его с 1.3, вы получите эту ошибку. Я читаю об этом, и это связано с перехватчиками, так, как они объявлены в угловом 1.3, отличается, также responseInterceptors полностью устарели в угловой 1.3

 Смежные вопросы

  • Нет связанных вопросов^_^