2016-04-15 78 views
1

我有一个角模板。在app.js我有这样的配置:什么是认证拦截在角

app.config(function ($routeProvider, $httpProvider) { 
$httpProvider.interceptors.push('AuthInterceptor'); 

$routeProvider 
.when('/', { .....etc 

的AuthInterceptor是这家工厂:

'use strict'; 

app.factory('AuthInterceptor', function ($rootScope, $q, $window, $location) { 
return { 
    request: function (config) { 
    config.headers = config.headers || {}; 
    if ($window.localStorage.token) { 
     config.headers.Authorization = 'Token ' + $window.localStorage.token; 
    } 
    return config; 
    }, 

    responseError: function (response) { 
    if (response.status === 401) { 
     $window.localStorage.removeItem('token'); 
     $window.localStorage.removeItem('email'); 
     $location.path('/'); 
     return; 
    } 
    return $q.reject(response); 
    } 
}; 
}); 

是什么究竟做什么?

+0

添加授权头包含一个令牌。令牌存储在localStorage中,并在服务器返回401时删除。 – JEY

回答

1

的“AuthInterceptor”将注入一个令牌在headers.Authorization参数之前,每一个要求。 这将允许你保持logedIn在服务器端,或检查是否存在令牌并允许一些休息功能。