Behandeln Angular 401-Antworten

8

Ich habe eine einfache API und einen Autorisierungspunkt

Wenn ich api anfordere, erhalte ich eine 401, wenn das Token ungültig ist (Token verliert seine Gültigkeit nach fünf Minuten).

Ich weiß, ich kann 401 zum Beispiel mit

abfangen %Vor%

aber ich möchte die Anfrage erfassen und in die Warteschlange stellen und ein Login-Formular anzeigen, wenn es erfolgreich ist, dann das Token ändern (es ist eine Kopfzeile) und die Anfrage erneut ausführen

    
rkmax 22.09.2014, 16:40
quelle

2 Antworten

6

Sie können $ httpInterceptor auf eine andere Weise verwenden. Wenn Sie den Benutzer nach der Anmeldung auf die Seite umleiten möchten, auf der der Benutzer tatsächlich gescheitert ist, müssen Sie die fehlgeschlagene Anfrage in einem Dienst zwischenspeichern und den Benutzer nach der Anmeldung irgendwo umleiten (ich glaube in der Logik, die mit Ihrer Anmeldung verbunden ist).

Sie müssen jedoch möglicherweise über einen Testendpunkt verfügen, um Ihre Controller vor uneingeschränktem Zugriff zu schützen. Möglicherweise möchten Sie die Lösung Ссылка verwenden In diesem Fall erhalten Sie einen Fehler, der mit dem eingeschränkten Zugriff auf den procteded Endpunkt, nicht aber mit Ihrer Seite verbunden ist.

Um dieses Problem zu lösen, habe ich mit marker param (oder header) herausgefunden, wohin ich den Benutzer nach der Anmeldung weiterleiten soll.

Hier ist ein Beispiel für Ihren httpInterceptor.

%Vor%     
Artemis 22.09.2014 16:47
quelle
2
Das

angular-http-auth-Modul stellt einen Dienst bereit, der Anfragen abfängt und sie in die Warteschlange stellt, um sie später erneut zu senden, sobald sich ein Benutzer anmeldet.

Dieser Dienst löst auch die folgenden Ereignisse aus, damit Sie sie hören und entscheiden können, was auf dem Bildschirm angezeigt werden soll

  • event: auth-loginRequired
  • event: auth-loginCancelled
  • event: aut-loginConfirmed

Sehen Sie sich den Code an. Es hat nur ein paar Zeilen Code

Ссылка

    
yeraycaballero 23.09.2014 08:26
quelle

Tags und Links