Token-basierte Authentifizierung in REST-APIs

Ich versuche, einen tokenbasierten Authentifizierungsansatz zu implementieren:

Jede erfolgreiche Anmeldung erstellt ein neues Token.

Wählt der Benutzer "Angemeldet bleiben" oder verwendet der Benutzer ein mobiles Gerät, wird das Token ohne Ablaufdatum in einer Redis-Datenbank gespeichert. Andernfalls läuft das Token in 20 Minuten ab.

enn der Benutzer authentifiziert ist, wird das Token von jeder nachfolgenden Anforderung in meiner Redis-Datenbank geprüf

Ich frage mich, wie ich Geräte identifizieren kann. Bei mobilen Geräten kann ich eine Gerätekennung verwenden. Aber wie kann ich einen Browser identifizieren?

Beispiel: Der Nutzer meldet sich mit Chrome an und wählt "Angemeldet bleiben". Ein Token wird generiert und mit dem Browsernamen in Redis beibehalten. Wenn sich der Benutzer über Firefox anmeldet, werden das Token und "Firefox" in der Datenbank gespeichert. Ich speichere das Token in Redis, während das Token bei erfolgreicher Authentifizierung erstellt wird. Ist es in Ordnung, nur das Token und den Browser beizubehalten, in dem das Token verwendet wird? Oder muss ich die IP auch beibehalten?

Zusätzliche Frage: Wie vermeide ich, dass Angreifer das Token von einem Cookie stehlen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage