2016-04-15 8 views
1

Ich habe eine Angular-Vorlage. In dem app.js habe ich diese config:Was ist Authentication Interceptor in eckigen

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

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

Die AuthInterceptor ist diese Fabrik:

'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); 
    } 
}; 
}); 

Was bedeutet es genau tun?

+0

Berechtigungsheader hinzufügen, der ein Token enthält. Token wird in localStorage gespeichert und entfernt, wenn 401 vom Server zurückgegeben wird. – JEY

Antwort

1

Der "AuthInterceptor" wird ein Token in Header.Authorization Parameter für jede Anfrage vor ihm injizieren. Damit können Sie lodgedIn auf der Serverseite behalten oder prüfen, ob ein Token vorhanden ist und einige Pausen zulassen.