繁体   English   中英

Angular.js应用程序的身份验证API

[英]Authentication API for Angular.js App

我使用AngularJS构建单页应用程序。 我希望代码AnggularJS部分始终检查身份验证情况,并在有连接将数据发送到服务器时始终发送标头信息[X-Access-Token]。 下面是我使用的代码,但是可能无法正常工作。 我必须手动将标头X-Access-Token的数据添加到函数$ http get,post中。 您有AngularJS的经验吗,请帮助我! 谢谢。

app.factory('myHttpResponseInterceptor',['$q','$location',function($q,$location){
return function (promise) {
    var success = function (response) {
        return response;
        console.log(response);
    };

    var error = function (response) {
        if (response.status == 401) {
            //$state.go('signin');

        }

        return $q.reject(response);
    };

    return promise.then(success, error);
};
}]);

//Http Intercpetor to check auth failures for xhr requests
app.config(['$httpProvider',function($httpProvider) {
  $httpProvider.interceptors.push('myHttpResponseInterceptor');
}]);


app.factory('api', function ($http, $cookieStore, flash, $state) {
return {
  init: function (token) {
    $http.defaults.headers.common['X-Access-Token'] = token || $cookieStore.get('token');
  }
};
});

app.run(function (api) {
  api.init();
});

app.controller('adminProCatController', function($scope, $rootScope, flash, $state, $http, $cookieStore) {

    $http.get('api/v1/categories?image_size=50x50', {headers: {'X-Access-Token': $cookieStore.get('token')}}).success(function(data) {
        $scope.categories = data;
    });
});

识别经过身份验证的用户

可能有几种方法可以识别经过身份验证的用户。 实际上,可以设置一个全局变量,或者创建一个cookie……但是,达到目标的我最喜欢的方法是使用AngularJS服务。 这种方法给了我几个好处。 第一个优势与每个AngularJS服务的真实性质紧密相关; 服务是单例的,因此每个服务只有一个实例……这允许在不同的视图,控制器,指令,过滤器和其他服务之间共享数据,而无需填充全局范围。

你可以参考这篇文章

或者您正在寻找完整的解决方案-git

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM