首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >angularjs localStorageServiceProvider

angularjs localStorageServiceProvider
EN

Stack Overflow用户
提问于 2014-12-03 05:34:35
回答 2查看 3.9K关注 0票数 1

我正在努力学习本教程。

http://www.codeproject.com/Articles/784106/AngularJS-Token-Authentication-using-ASP-NET-Web-A

我不知道要下载哪个angularjs包,以便我可以在angularjs代码中使用localStorageService和ngAuthSettings。

当我运行mvc 5 asp.net vs2013 web应用程序时,我会得到以下错误。

代码语言:javascript
运行
复制
Unknown provider: localStorageServiceProvider <- localStorageService <- authInterceptorService <- $http <- $templateRequest <- $compile

这是我的密码。

代码语言:javascript
运行
复制
var appointmentReminderApp = angular.module('appointmentReminderApp', ["ngRoute", "ui.bootstrap"]);


appointmentReminderApp.config(function ($routeProvider, $locationProvider,$httpProvider) {
    $httpProvider.interceptors.push('authInterceptorService');
    $locationProvider.html5Mode(true);

    $routeProvider
        .when("/home", {
            templateUrl: "App/Home.html",
            controller: "HomeController"
        })
        .when("/Register", {
            templateUrl: "App/AuthForm/templates/register.html",
            controller: "authRegisterController"
        })
        .when("/Login", {
            templateUrl: "App/AuthForm/templates/login.html",
            controller: "authLoginController"
        })
        .otherwise({ redirectTo: "/home" });
});



appointmentReminderApp.factory('authInterceptorService', ['$q', '$injector', '$location', 'localStorageService', function ($q, $injector, $location, localStorageService) {

    var authInterceptorServiceFactory = {};

    var _request = function (config) {

        config.headers = config.headers || {};

        var authData = localStorageService.get('authorizationData');
        if (authData) {
            config.headers.Authorization = 'Bearer ' + authData.token;
        }

        return config;
    }

    var _responseError = function (rejection) {
        if (rejection.status === 401) {
            var authService = $injector.get('authService');
            var authData = localStorageService.get('authorizationData');

            if (authData) {
                if (authData.useRefreshTokens) {
                    $location.path('/refresh');
                    return $q.reject(rejection);
                }
            }
            authService.logOut();
            $location.path('/login');
        }
        return $q.reject(rejection);
    }

    authInterceptorServiceFactory.request = _request;
    authInterceptorServiceFactory.responseError = _responseError;

    return authInterceptorServiceFactory;
}]);



appointmentReminderApp.factory('authService', ['$http', '$q', 'localStorageService', 'ngAuthSettings', function ($http, $q, localStorageService, ngAuthSettings) {

        var registerUser = function (auth) {
            return $http.post("/api/Account/Register", auth);
        };

        var loginUser = function (loginData) {

            var data = "grant_type=password&username=" + loginData.userName + "&password=" + loginData.Password;

            if (loginData.useRefreshTokens) {
                data = data + "&client_id=" + ngAuthSettings.clientId;
            }

            var deferred = $q.defer();

            $http.post(serviceBase + 'token', data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).success(function (response) {

                if (loginData.useRefreshTokens) {
                    localStorageService.set('authorizationData', { token: response.access_token, userName: loginData.userName, refreshToken: response.refresh_token, useRefreshTokens: true });
                }
                else {
                    localStorageService.set('authorizationData', { token: response.access_token, userName: loginData.userName, refreshToken: "", useRefreshTokens: false });
                }
                    _authentication.isAuth = true;
                    _authentication.userName = loginData.userName;
                    _authentication.useRefreshTokens = loginData.useRefreshTokens;

                    deferred.resolve(response);

                }).error(function (err, status) {
                    _logOut();
                    deferred.reject(err);
                });

                return deferred.promise;

        };

        return {
            registerUser: registerUser,
            loginUser: loginUser
        };
    }
]);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-03 05:45:07

您下载了角本地存储服务模块吗?你有这条线吗?

代码语言:javascript
运行
复制
<script src="scripts/angular-local-storage.min.js"></script>

在你的index.html里?

票数 2
EN

Stack Overflow用户

发布于 2014-12-05 05:38:42

所需的JS文件不附带有棱角。你可以从这里那里得到它。

我找不到CDN,如果找到会更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27264375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档