2017-07-06 2 views
0

Ich habe einen API-Client, der eine Verbindung mit einem API-Dienst eines Drittanbieters herstellt.Speichern des Zugriffstokens global, erneutes Laden bei Ablauf des Threads.

Das Problem ist, dass ich zuerst authentifizieren muss, und dann bekomme ich ein auslaufendes Token, das ich verwende.

Wie kann ich meine API in meiner ASP.NET MVC-Anwendung verwenden und verfolgen, wenn das Token abläuft Ich muss erneut authentifizieren und dann den API-Aufruf, der fehlgeschlagen (wenn das Token abläuft).

List<User> users = api.getUsers(); 

Wenn das API-Client-Token abläuft, muss es sich erneut authentifizieren und dann den Anruf tätigen. Gibt es eine Möglichkeit, api.getUsers nach der erneuten Authentifizierung erneut aufzurufen, da der Aufruf zunächst mit einem "abgelaufenen Token" fehlschlägt.

Gedanken?

Antwort

0

Wenn es einen Serviceaufruf gibt, der die Überprüfung des Tokens ermöglicht, lassen Sie Ihr Authentifizierungsobjekt das Token im Getter prüfen und authentifizieren, wenn es nicht gültig ist.

Wenn nicht, würde ich einen try/catch verwenden und die abgelaufene Token-Ausnahme behandeln, indem ich die Anfrage authentifiziere und wiederhole. Die Wiederholung muss entweder ein eigenständiger Codeblock im Catch sein oder Sie benötigen ein Objekt, um den letzten Aufruf der Authentifizierung zu überprüfen und nach n Versuchen eine Ausnahme auszulösen.

Ich bin sicher, es gibt mehrere andere Ansätze, diese sind, was sofort in den Sinn kommen.

+0

das Problem ist, ich möchte das nicht in jeder API Anruf Methode zu wiederholen, versuchen, ein Muster zu denken, dies an einem einzigen Ort zu tun. –

+0

Die Dienste erfordern ein Token. Mit der getToken-Methode, die überprüft, ob das Token gültig ist und ein gültiges Token zurückgibt, verfügen Sie über eine einzige Methode zum Aufrufen der Authentifizierung. Es kann erweitert werden, um Parameter zu übernehmen, um dies für all Ihren Code auszuführen, der ein Token benötigt. –

Verwandte Themen