2013-05-16 10 views
5

Nach https://groups.google.com/forum/#!forum/oauth2-dev Diskussion ist jetzt hier.Google OAuth2 Refresh_token läuft ab, wenn Access_token

Egal wie viel ich lese, ich kann nicht verstehen, wie Google OAuth2 Tokens funktionieren. Das Lesen der Dokumente und vieler anderer Orte deutet darauf hin, dass ein refresh_token nicht abläuft und verwendet wird, sobald das access_token abläuft. Siehe die offizielle Dokumentation unter https://developers.google.com/accounts/docs/OAuth2WebServer#refresh

In der Praxis scheint es jedoch so zu funktionieren, wie von Paul (Unable to refresh token after expiration) beschrieben, dass das Aktualisierungstoken abläuft, wenn das Zugriffstoken abläuft.

Kann ein Google-Techniker bestätigen, wie das richtige Verhalten sein sollte, da dies der Fall ist, wenn Verhalten und Dokumentation nicht übereinstimmen.

Es macht auch das Refresh-Token nutzlos.

Antwort

7

Wenn Sie access_type=offline anfordern, wenn Sie die erste Anfrage an https://accounts.google.com/o/oauth2/auth senden, dann erhalten Sie ein Refresh-Token zusammen mit dem Zugriffstoken zurück. This is documented here.

Das Aktualisierungs-Token verfällt nicht, bis der Benutzer den Zugriff von der Account -> Security -> "Connected applications and sites" Seite explizit widerruft.

Der andere Beitrag, den Sie verlinkt haben, scheint mit SoundCloud verwandt zu sein, was vermutlich etwas anders funktioniert.

+1

Danke Dean. Nach einigen Untersuchungen mit Google Oauth2 Playground kann ich bestätigen, dass refresh_tokens beide gültig sind, nachdem das Zugriffstoken abläuft, und können unabhängig vom Status des Zugriffstokens verwendet werden. (Einige hatten vorgeschlagen, es würde nicht funktionieren, bis das access_token abgelaufen ist). Mein Problem scheint darin zu bestehen, dass ich das refresh_token von der Bibliothek, die ich benutzt habe, verlassen habe und dann weiter durch die Bibliothek entkommen konnte, als ich das Token angezeigt habe. Mit OAuth2 playground erkannte ich, dass meine Token nicht richtig aussahen, da sie die zusätzlichen Escape-Zeichen enthielten. –

+0

Ich kann selbst mit access_type = offline kein Refresh-Token bekommen :( http://StackOverflow.com/questions/27678496/google-oauth- access-token-expiration-in-mvc-app – monstro

+0

ist eine Möglichkeit, ob ich überprüfen kann, ob mein Refresh-Zugriffstoken widerrufen wurde oder nicht, bevor ich es benutze ..? – usama

Verwandte Themen