Page 1 of 1

Aktualisierungstoken, während mehrere Ajax-Abfragen in Javascript ausgeführt werden

Posted: 19 Jan 2025, 18:23
by Guest
Ich habe eine API, die JWT-Zugriffstoken und Aktualisierungstoken ausgibt. Die Zugriffstoken haben eine kurze Lebensdauer und werden daher häufig (vorläufig jede Minute) aktualisiert. Mein JS/JQ-Frontend ist mit $.ajaxPrefilter eingerichtet, um zu prüfen, ob ein API-Aufruf mit 401 fehlgeschlagen ist, und um ein neues Zugriffstoken auszustellen und gleichzeitig das Ablaufdatum des Aktualisierungstokens zu aktualisieren. Das funktioniert in den meisten Situationen gut, aber ich stoße auf ein Problem, wenn eine Seite neu geladen wird und drei AJAX-Abfragen nacheinander durchgeführt werden. Die erste Abfrage ruft den Aktualisierungsendpunkt auf und erhält ein neues Zugriffstoken, während das Aktualisierungstoken aktualisiert wird. Die nachfolgenden Abfragen schlagen jedoch fehl, da sie das nun veraltete Aktualisierungstoken senden, das der Aktualisierungsendpunkt nicht validieren kann. Im Wesentlichen versuchen die nachfolgenden Abfragen, eine Token-Aktualisierung durchzuführen, bevor die erste abgeschlossen ist, und schlagen die ursprünglichen AJAX-Abfragen fehl oder leiten mich aufgrund einer fehlgeschlagenen Authentifizierung zur Anmeldeseite zurück.
Meine Frage wäre: Was Welchen Ansatz ich wählen sollte, um dieses Problem zu lösen. Ich habe wenig Programmiererfahrung und kann mir nichts einfallen lassen, was funktioniert. Meiner Meinung nach geht es darum, die Abfragen irgendwie in die Warteschlange zu stellen oder sie aufzuschieben, bis das Token aktualisiert wurde. Ich könnte eine Lösung implementieren, um beim Laden der Seite auf eine Token-Aktualisierung zu warten, aber es gibt immer noch Bedingungen, unter denen realistischerweise mehrere Abfragen schnell hintereinander stattfinden könnten, wenn eine Token-Aktualisierung erforderlich ist, sodass das Problem nur weniger wahrscheinlich ist.