Speichern von Zugriffstokens und Verarbeiten ihrer Verfallsdaten

8

Ich benutze OAuth als:

  1. eine zweite Methode, um Benutzer in meine Webanwendung zu unterschreiben (anstatt ihren Namen, ihre E-Mail-Adresse und ihr Passwort manuell anzugeben)
  2. eine Möglichkeit, Benutzerdaten auf der gesamten Website zu empfangen.

Was wäre die beste Vorgehensweise beim Speichern von Zugriffstoken? Ich habe zwei Möglichkeiten:

  1. Speichern Sie Zugriffstoken in Cookies
  2. Speichern Sie Zugriffstoken in einer Datenbank

Was sind die Vor- und Nachteile beider Wahlmöglichkeiten?

In Bezug auf Tokenabläufe, was sollte getan werden, um damit umzugehen?

Eine Möglichkeit, die ich damit umgehen könnte, besteht darin, zu prüfen, ob beim Aufruf der API ein Fehler aufgetreten ist, und so ein neues Token anzufordern und dann die API erneut aufzurufen. Wird der Benutzer bei der Anforderung eines neuen Tokens aufgefordert, sich erneut anzumelden? Ich würde mir vorstellen, dass dies ein Problem wäre, wenn eine Seite auf meiner Website Daten von Facebook benötigt, aber um sie wiederzuerlangen, müssen sich die Benutzer wieder einloggen.

Ich verstehe nicht, wie andere Websites den Zugang zu Facebook-, Google- oder Twitter-APIs aufrechterhalten, ohne dass ich mich erneut anmelden muss, besonders wenn ich auf einem anderen Gerät bin, auf dem ich mich nicht einmal bei Facebook eingeloggt habe. Twitter oder Google Wie machen sie das? Danke.

    
Pav Sidhu 08.08.2016, 19:56
quelle

1 Antwort

4

Wenn die Authentifizierung mithilfe von Google OAuth2.0 erfolgt. Google stellt zwei Token zur Verfügung, nämlich Access Token und Refresh Token.

Zugriffstoken haben eine begrenzte Lebensdauer für 3600 Sekunden, aber Aktualisierungstoken sind für einen längeren Zeitraum gültig.

Refresh-Token läuft ebenfalls ab. Lesen Sie im Abschnitt Google OAuth2.0 den Abschnitt <.

Man kann ein neues Zugriffstoken vom Aktualisierungstoken erhalten, ohne sich erneut anmelden zu müssen. ReST api

So kann man eine Logik implementiert haben, um nach Ablauf der Zeit zu prüfen, nachdem das Zugriffstoken generiert wurde, und vorbeugende Schritte für die Generierung neuer Zugriffstoken zu unternehmen. Google-Tokens laufen in 3600 Sekunden ab, so dass man nach etwa 3500 Sekunden ein Zugriffstoken erhalten kann, und das ältere, mit neuem gespeicherte Zugriffstoken zur weiteren Verwendung aktualisiert. Eine weitere Möglichkeit besteht darin, das Aktualisierungstoken in GoogleCredential , das beim Erstellen des Dienstes einer beliebigen API als Parameter (httpRequestInitializer) übergeben wird. (Beispiel: Drive.Builder )

Wenn Sie kein Aktualisierungstoken speichern, aus dem das Zugriffstoken neu generiert werden kann, müssen Sie sich erneut authentifizieren, um ein neues Token zu erhalten.

    
akgaur 11.08.2016, 09:32
quelle