Je fais l'authentification et l'autorisation côté serveur.
Dans angularJs, je fais le routage à l'aide de routeProvider comme ceci.
$routeProvider.
when('/', {
templateUrl: 'partials/_home',
controller: 'HomeCtrl'
}).
when('/home', {
templateUrl: 'partials/_home',
controller: 'HomeCtrl'
}).
when('/users', {
templateUrl: 'partials/_users',
controller: 'UserCtrl'
}).
when('/users/:id', {
templateUrl: 'partials/_userForm',
controller: 'UserCtrl'
}).
otherwise({
redirectTo: '/'
});
Et voici le problème à résoudre, lorsque j'obtiens un 403 angular ne montre pas la page du serveur, il ne fait tout simplement rien.
Quelqu'un a-t-il une suggestion sur la façon de gérer cela?
Les intercepteurs sont des usines de service qui sont enregistrées auprès de $ httpProvider en les ajoutant au tableau $ httpProvider.interceptors. La fabrique est appelée et injectée avec des dépendances (si spécifié) et retourne l'intercepteur.
Pour en savoir plus: $ http angularjs Doc
.config(function ($httpProvider) {
$httpProvider.interceptors.Push('responseObserver');
})
403.html
et 500.html
sont des fichiers HTML existants, de style agréable avec du contenu d'aide pour l'utilisateur.
.factory('responseObserver', function responseObserver($q, $window) {
return {
'responseError': function(errorResponse) {
switch (errorResponse.status) {
case 403:
$window.location = './403.html';
break;
case 500:
$window.location = './500.html';
break;
}
return $q.reject(errorResponse);
}
};
});
Pour étendre les connaissances sur les intercepteurs: http://djds4rce.wordpress.com/2013/08/13/understanding-angular-http-interceptors/