【发布时间】:2016-08-07 02:19:49
【问题描述】:
我有一个 Angular 模板。在 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);
}
};
});
它到底是做什么的?
【问题讨论】:
-
添加包含令牌的授权标头。 Token 存储在 localStorage 中,服务器返回 401 时删除。
标签: angularjs authentication angular-http-interceptors