我如何要求对Angular模板进行身份验证?

时间:2016-09-02 16:47:31

标签: angularjs security

在我的Angular(1.3)应用程序中,当用户导航到某个路径时,会根据用户是否经过身份验证,为a指定的模板发出XHR请求。

我不希望未经身份验证的用户能够打开开发人员工具栏中的“网络”标签,并查看模板代码。

除非我的用户经过身份验证,否则如何为templateUrl触发XHR请求?

我希望很明显,我并没有要求 进行身份验证。我只想询问如何在访问路线和解雇模板XHR请求之间放置一些东西。

2 个答案:

答案 0 :(得分:1)

我使用$ cookie,在做任何请求之前检查cookie,如果存在,他会被记录,如果不存在则不记录。

用户登录后,您必须将cookie保存在系统中。

https://docs.angularjs.org/api/ngCookies/service/ $饼干

答案 1 :(得分:0)

Yon可以尝试使用可用于拦截$http次呼叫的角度拦截器。它可以在$httpProvider

注册

Complete Example

示例代码:

module.factory('myInterceptor', ['$q', 'userAsyncService', function($q, userAsyncService) {  
    var requestInterceptor = {
        request: function(config) {
            // put check on requested url if needed from config
            var deferred = $q.defer();
            // check for user validation here
            userAsyncService.isValidUser().then(function(valid) {   
                if(valid) {
                    deferred.resolve(config);
                } else {
                    // reject the request
                    deferred.reject(config);
                }                   
            });
            return deferred.promise;
        }
    };
    return requestInterceptor;
}]);

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