密钥斗篷身份验证上的AngularJS未知提供程序($injector:unpr)

密钥斗篷身份验证上的AngularJS未知提供程序($injector:unpr),angularjs,keycloak,Angularjs,Keycloak,我拼命想让我的web应用程序与KeyClope一起工作。 我已经保护了我的HTTP REST服务,现在我想让用户在调用应用程序并且尚未登录后重定向到KeyClope,然后返回应用程序并可以使用API服务 为了实现这一点,我使用了以下示例: 因为我使用的是angularJS 1.7.x版,所以我根据这封邮件修改了代码: 尽管如此,我还是不断发现错误: jquery.min.js:2 Uncaught Error: [$injector:unpr] Unknown provider:

我拼命想让我的web应用程序与KeyClope一起工作。 我已经保护了我的HTTP REST服务,现在我想让用户在调用应用程序并且尚未登录后重定向到KeyClope,然后返回应用程序并可以使用API服务

为了实现这一点,我使用了以下示例: 因为我使用的是angularJS 1.7.x版,所以我根据这封邮件修改了代码:

尽管如此,我还是不断发现错误:

    jquery.min.js:2 Uncaught Error: [$injector:unpr] Unknown provider: 
    AuthProvider <- Auth <- authInterceptor <- $http <- $templateRequest <- $route
    https://errors.angularjs.org/1.7.2/$injector/unpr?p0=AuthProvider%20%3C- 
   %20Auth%20%3C-%20authInterceptor%20%3C-%20%24http%20%3C- 
   %20%24templateRequest%20%3C-%20%24route
        at angular.js:138
        at angular.js:4891
        at Object.getService [as get] (angular.js:5051)
        at angular.js:4896
        at getService (angular.js:5051)
        at injectionArgs (angular.js:5076)
        at Object.invoke (angular.js:5100)
        at Object.enforcedReturnValue [as $get] (angular.js:4943)
        at Object.invoke (angular.js:5108)
        at angular.js:4897

我将非常感谢每一个提示!谢谢!:-)

你没有通过相关代码嗨,我忘了什么?谢谢
<script src="static/javascript/angular.js"></script>
<script src="static/javascript/angular-resource.js"></script>
<script src="static/javascript/angular-route.js"></script>
<script src="static/javascript/dirPagination.js"></script>
<script src="static/javascript/keycloak.js"></script>
<script src="static/javascript/admin.js"></script>
"use strict";  
var module = angular.module('service', ['ngRoute', 'ngResource', 
'angularUtils.directives.dirPagination']);  

var auth = {};
var logout = function(){  
    console.log('*** LOGOUT');  
    auth.loggedIn = false;  
    auth.authz = null;  
    window.location = auth.logoutUrl;  
};  

angular.element(document).ready(["$http", function ($http) {  

    var keycloakAuth = new Keycloak({
        url: 'https://keycloakserver/auth',
        realm: 'realm',
        clientId: 'app-admin'
    });
    auth.loggedIn = false;  


    keycloakAuth.init({ onLoad: 'login-required' }).success(function () {  
        auth.loggedIn = true;  
        auth.authz = keycloakAuth;  
        auth.logoutUrl = keycloakAuth.authServerUrl + 
"/realms/realm/tokens/logout?redirect_uri=https://myapp/admin";  
        module.factory('Auth', function() {  
            return auth;  
        });  
        angular.bootstrap(document, ["service"]);  

    }).error(function () {  
        window.location.reload();  
    });  

}]);  

module.controller('transactions', function($scope, $http, $filter) {

    $scope.transactions = [];

    $scope.submit = function() {
        var myParams = {
                searchId: $scope.search_id

        }

        $http.get('https://myapp/rest/search',{params:myParams}).
        then(function(response) {
            $scope.transactions = response.data;
        });
    };

    $scope.sort = function(keyname){
        $scope.sortKey = keyname;
        $scope.reverse = !$scope.reverse;
    };

    $scope.showDetails = function(transaction) {
        $scope.selectedTransaction = transaction;
    };

});

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;  
    },  
    'requestError': function(rejection) {  
        return $q.reject(rejection);  
    },  

    'response': function(response) {  
        return response;  
    },  

         'responseError': function(response) {  

            if (response.status == 401) {  
                console.log('session timeout?');  
                logout();  
            } else if (response.status == 403) {  
                alert("Forbidden");  
            } else if (response.status == 404) {  
                alert("Not found");  
            } else if (response.status) {  
                console.log(response.status);  
                if (response.data && response.data.errorMessage) {  
                    alert(response.data.errorMessage);  
                } else {  
                    alert("An unexpected server error has occurred");  
                }  
            } else if (response === 'Failed to refresh token') {  
                logout();  
            }  
            return $q.reject(response);  
        }  
    };  
}]);  

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