Déterminer si le jeton de support a expiré ou est juste autorisé

Mon angulaire de l'application est de rendre l'utilisation de porteur de jetons que décrites dans l'article de la série http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/. J'ai suivi la fourche exemple de manière transparente l'actualisation des jetons lorsque le jeton d'accès a expiré (via 401 code http).

Ma question est comment puis-je déterminer si le porteur du jeton est expiré ou tout simplement non autorisée sur la base du rôle déterminé?

Par exemple, mon api web méthode a l'attribut [Autoriser(Rôles="Admin")]. Quand je fais un appel pour que je récupère mon erreur 401, ce qui est prévu. Toutefois, lorsque mon jeton d'accès expire et que je fais un api web de l'appel de méthode, il renvoie également à une erreur 401. Heres mon responseError gestionnaire dans mon intercepteur:

        responseError: function (rejection) {
            var deferred = q.defer();
            if (rejection.status === 401) {
                var authService = $injector.get('authService');
                authService.refreshToken().then(function (response) {
                    _retryHttpRequest(rejection.config, deferred);
                }, function () {
                    authService.logOut();
                    $location.path('/dashboard');
                    deferred.reject(rejection);
                });
            } else {
                deferred.reject(rejection);
            }
            return deferred.promise;
        }

J'ai été jouer avec des choses différentes, mais en gros, je voudrais actualiser mon jeton et de le renvoyer ma demande, lorsque le jeton d'accès est expiré; cependant, je ne veux pas actualiser mon jeton si c'est vraiment une demande rejetée en raison du rôle spécifié.

Toutes les pensées?

source d'informationauteur mmoreno79