Angenommen, ich habe ein Authentifizierungs-Token generiert und um Verarbeitungs- und Remote-Aufrufe zu speichern, habe ich die Ablaufdaten für ungefähr 30 Tage in der Zukunft festgelegt.
Nun möchte ich dieses Konto von meinem System entfernen, gibt es eine Möglichkeit, das Authentifizierungs-Token zu widerrufen, das ich dem Client gegeben habe?
Ich glaube nicht, dass das momentan möglich ist, und ich kann das sicherlich umgehen (indem ich meistens keine so hohen Ablaufzeiten habe), aber ich wollte nur sicherstellen, dass ich in den Dokumenten nichts verpasst habe.
>Sie können dieses spezielle Token nicht wirklich widerrufen (abgesehen davon, dass das Geheimnis, das das Token generiert hat, ungültig gemacht wird, aber das alle anderen Token dieses geheimen Schlüssels ungültig macht - wahrscheinlich nicht das, was Sie wollen).
Sie können sich jedoch auf bestimmte Token-spezifische Informationen verlassen (möglicherweise haben Sie eine eindeutige Benutzer-ID als Daten in das Token eingefügt) und Ihre Sicherheitsregeln aktualisieren, um alle Operationen abzulehnen, die diesem Wert entsprechen.
Firebase bietet jetzt die Möglichkeit, Refresh-Tokens zu entziehen, es ist ziemlich frisch - hinzugefügt am 01.04.2018. Ссылка
Hinzufügen zu @Alex Redwoods Antwort
Dies ist der wichtige Teil:
%Vor% Das Beispiel in der Dokumentation enthält alle Arten von nuancierten Fällen, z. B. das Schreiben eines Zeitstempels in die Datenbank, um Lesevorgänge zu verhindern, bis das aktuelle Token abläuft, sehr implementierungsspezifische Fälle. Der wichtige Teil ist, dass Sie revokeRefreshTokens(uid)
für die korrekte uid
aufrufen und verifizieren, dass userRecord
den userRecord.tokensValidAfterTime
Wert geändert hat. Dadurch werden Ihre aktiven Token nicht ablaufen. Daher ist es wichtig, kurze Ablaufzeiten zu haben, um das Angriffsfenster zu verkürzen (Eine bessere Lösung als eine Datenbankregel, die meiner Meinung nach einen Zeitstempel überprüft).
Von: Ссылка
Tags und Links firebase firebase-security