Laravel Sanctum: Bearer Token best practice?

FrazeColder

Lt. Commander
Registriert
Okt. 2013
Beiträge
1.718
Hallo zusammen,

ich habe mir eine Anwednungs mittels Laravel geschrieben, die auch eine API besitzt. Alle POST Request laufen über die API mittels eines Bearer Tokens. Hintergrund ist, dass ich auch eine App Programmieren möchte. Daher habe ich die Webseite umgeschrieben und nun bekommt der User beim Login auf der Webseite einen Bearer Token überreicht.

Diesen Bearer Token speichere ich im Local Storage des Browsers ab. Ich halte es für sinnvoll die Tokens nach beispielsweise 30 Tage ablaufen zu lassen, sodass der User sich erneut mit E-Mail und Passwort einloggen muss. Nun stehe ich aber vor folgenden Problemen, wo ich eure Hilfe bzw. Ideen bräuchte, wie ich diese Lösen kann:

1. Bringt das mehr Sicherheit oder soll ich den Nutzer immer eingeloggt lassen?

2. Laravel Sanctum unterstützt zwar von Haus aus keine "Refresh Tokens" mit denen ein abgelaufener "Auth Token" erneuert werden kann, das könnte ich aber mit Packages von Github umetzen. Das halte ich allerdings auch für nicht wirklich hilfreich, da ich mir ja dann jedes mal "unendlich" viele neue "Auth Tokens" generieren kann. Daher bringt nur ein erneuter Login wirklich mehr Sicherheit meiner Meinung nach.

3. Sollte ich mich für die Variante "Refresh Tokens laufen nach 30 Tagen ab und man muss sich einloggen" stehe ich vor folgenden Problemen:

3.1. Wie umgehe ich den blöden Fall, dass ein User bis 15:00 Uhr eingeloggt ist, um 14:59 eine Seite aufruft, einen Kommentar schreiben will und den um 15:01 absendet? Dann ist er nämlich nicht mehr eingeloggt, müsste sich neu einloggen und der Text für den Kommenater den er verfasst hat ist weg. Userfreundlich ist das nicht..

Die selben Fragen und Probeleme stelle ich mir übrigens auch hinsichtlich der App!

Bin offen für Vorschläge!
Viele Grüße und Dank!
 
Wie kommst du eigentlich auch die 30 Tage? Also, was versprichst du dir von diesem recht willkürlichen Zeitrahmen?

Meine Meinung:
wenn mit Ablauf, dann mit einem Timeout, sprich: User hat x Minuten nicht mehr interagiert -> Token ungültig, neuer Login erforderlich
wenn dauerhafter Login nötig: Aktualisierung des Tokens unumgänglich. Sprich: Nach Zeit X gilt der alte Token noch genau einmal um einen neuen anzufordern.
 
Das war jetzt einfach mal so in den Raum gestellt.. Ich will nur eine Lösung finden.
 
Zurück
Oben