Ich möchte die JWT-basierte Authentifizierung für unsere neue REST-API implementieren. Ist es jedoch möglich, den Ablauf automatisch zu verlängern, da er im Token festgelegt ist? Ich möchte nicht, dass sich Benutzer alle X Minuten anmelden müssen, wenn sie die Anwendung in diesem Zeitraum aktiv genutzt haben. Das wäre ein großer UX-Fehler.
Wenn Sie jedoch den Ablauf verlängern, wird ein neues Token erstellt (und das alte ist noch gültig, bis es abläuft). Und nach jeder Anfrage ein neues Token zu generieren, klingt für mich albern. Klingt nach einem Sicherheitsproblem, wenn mehr als ein Token gleichzeitig gültig ist. Natürlich könnte ich die alte gebrauchte mit einer schwarzen Liste ungültig machen, aber ich müsste die Token speichern. Und einer der Vorteile von JWT ist kein Speicher.
Ich habe herausgefunden, wie Auth0 es gelöst hat. Sie verwenden nicht nur ein JWT-Token, sondern auch ein Aktualisierungstoken: https://docs.auth0.com/refresh-token
Um dies zu implementieren (ohne Auth0), müsste ich Aktualisierungstoken speichern und deren Ablauf beibehalten. Was ist dann der wahre Vorteil? Warum nicht nur ein Token (nicht JWT) haben und den Ablauf auf dem Server behalten?
Gibt es noch andere Möglichkeiten? Ist die Verwendung von JWT für dieses Szenario nicht geeignet?