Token-basierte Authentifizierung in REST-APIs

Ich versucht zu implementieren, die eine token-basierte Authentifizierung Ansatz:

  1. Jeder erfolgreichen login erstellt neue token.

  2. Wenn der Benutzer wählt "halten Sie mich angemeldet" oder der Benutzer mit einem mobilen Gerät, wird der token beibehalten, in eine Redis-Datenbank ohne Ablaufdatum. Andernfalls wird das token verfällt in 20 Minuten.

  3. Sobald der Benutzer authentifiziert ist, wird das token wird überprüft von jeder nachfolgenden Anfrage in meinem Redis-Datenbank.

Ich Frage mich, wie kann ich Geräte identifizieren. Im Fall von mobilen Geräten, ich kann mit einer Geräte-id. Aber wie erkenne ich einen browser?

Beispiel: Der Benutzer meldet sich an mit Chrome und wählt "halten Sie mich angemeldet". Wird ein token generiert und blieb mit dem browser-Namen in Redis. Wenn der Benutzer sich anmeldet, von Firefox, speichert das token und "Firefox" in der Datenbank. Ich Speichere die Tokens in Redis in der Erwägung, dass token wird erstellt, auf der erfolgreichen Authentifizierung. Ist es in Ordnung, um bestehen nur dem token und dem browser, in dem das token verwendet wird? Oder muss ich bestehen, die IP-Adresse gut?

Zusätzliche Frage: Wie kann man verhindern, Angreifer zu stehlen und die token von einem cookie?

  • Zu verschließen, müssen Sie erkennen, welches Gerät geben Sie die Anfrage kommt? Du musst auf "authentifizieren" Sie den Gerätetyp?
Schreibe einen Kommentar