api tag - Laufen die Google-Aktualisierungs-Tokens ab?




manager server-side (7)

Ich glaube nicht, dass das völlig stimmt:

Beachten Sie, dass die Anzahl der zu erteilenden Aktualisierungstoken begrenzt ist. ein Limit pro Client / Benutzer-Kombination und ein anderes pro Benutzer über alle Clients hinweg. Sie sollten Aktualisierungstokens im Langzeitspeicher speichern und sie weiterhin verwenden, solange sie gültig bleiben. Wenn Ihre Anwendung zu viele Aktualisierungstoken anfordert, können diese Grenzwerte überschritten werden. In diesem Fall funktionieren ältere Aktualisierungstoken nicht mehr.

von dieser Seite: https://developers.google.com/youtube/v3/guides/authentication#installed-apps

Das ist von den YouTube-Dokumenten (die ich als viel besser finde als andere API-Dokumente), aber ich denke, dass es in allen Google-Apps dasselbe ist.

Ich habe das Refresh-Token mehrmals zu Testzwecken in kurzer Zeit verwendet, aber ich frage mich, ob das Google Refresh-Token abläuft? Oder ich kann dasselbe Refresh-Token aufrufen, um in einem langen Zeitraum (eine Woche oder sogar Monate) immer wieder ein anderes Zugriffstoken zu erhalten?


Dies ist ein sehr verwirrender Thread. Die erste Antwort scheint richtig zu sein, zitiert aber nichts, was autoritativ von Google ist.

Die definitivste Antwort, die ich gefunden habe, ist tatsächlich auf dem Spielplatz des Entwicklers, wo Sie das Token erhalten. Schritt 2 hat eine Notiz an der Unterseite, die sagt:

"Hinweis: Der OAuth Playground speichert keine Aktualisierungstoken, aber da die Aktualisierungstoken niemals ablaufen, sollten Benutzer auf die Seite" Autorisierter Zugriff für Google-Konten "gehen, wenn sie diese manuell aufheben möchten."

https://developers.google.com/oauthplayground/



Ich habe weitere Nachforschungen angestellt und es scheint, dass das Google-Zugriffstoken verwendet wird, um ein Aktualisierungstoken während der ersten "Offline" -Anfrage abzurufen. Ab diesem Zeitpunkt wird das Aktualisierungstoken verwendet, um ein neues Zugriffstoken auszugeben. Die Idee ist, dass ein Zugriffstoken ein Kurzzeit-Token ist, aber es kann durch ein Langzeit-Aktualisierungstoken erneuert werden. Dadurch entfällt die Notwendigkeit, die URL-Variable "code" anzufordern, die einen Ansatz mit zwei Endpunkten erfordert und initiiert werden muss, indem eine Referrer-basierte Anfrage verwendet wird:

http://www.jensbits.com/2012/01/09/google-api-offline-access-using-oauth-2-0-refresh-token/

Einige, REST-API-Dienste wie Dropbox, geben Tokens für den Zugriff aus, die für immer bestehen, aber Google gibt Tokens für den kurzfristigen Zugriff aus. PayPal verwendet einen Kompromiss, bei dem Zugriffstoken ohne URI-Referrer-Erzwingung abgerufen werden können. Dies bedeutet, dass Zugriffstoken abgerufen werden können, ohne auf einen Link klicken zu müssen, um den Prozess zu initiieren. Googles Methodik bedeutet, dass API-Routinen nur auf der Basis einer Notwendigkeit aufgerufen werden sollten. Im Wesentlichen werden Anrufe über Referrer-basierte Verfahren initiiert. Dies wird durch die Ausgabe von kurzlebigen Zugriffstoken oder Zugriffstoken gesteuert, die in einer Kette aktualisiert werden müssen. Dies erfordert, dass Entwickler sich genauer Gedanken darüber machen, wie ein System fließen soll.


Das Hauptkonzept des Refresh-Tokens besteht darin, dass es langlebig ist und niemals abläuft.

Das Zugriffstoken hat eine Ablaufzeit und es läuft ab. Sobald es abläuft, können wir das Refresh-Token verwenden, das immer wieder verwendet wird, bis der Benutzer von seinem Konto widerruft.


Die von Google Auth Server ausgegebenen Refresh-Tokens laufen nie ab - das ist der springende Punkt der Refresh-Token. Das Aktualisierungs-Token läuft ab (oder ich sage, dass es nicht autorisiert wird), wenn der Benutzer den Zugriff auf Ihre Anwendung widerruft.

In diesem doc wird deutlich die Funktion der Aktualisierungstoken angegeben.

Anstatt einen langlebigen Token auszugeben (normalerweise für ein Jahr oder eine unbegrenzte Lebensdauer), kann der Server ein kurzlebiges Zugriffstoken und ein langlebiges Aktualisierungstoken ausgeben. Kurz gesagt, Sie können Refresh-Tokens immer wieder verwenden, bis der Benutzer, der den Zugriff autorisiert hat, den Zugriff auf Ihre Anwendung widerruft.


Wie @Theo erklärte, können Sie nicht direkt eine Verbindung herstellen, aber wenn Sie Webdis haben und neu einrichten, dann habe ich eine Bibliothek, die es vermeidet, mit Ajax selbst herumzuspielen, zugunsten eines auf Versprechen basierenden Ansatzes.

webdismay ist eine JS-Bibliothek, die ich kürzlich veröffentlicht habe (Lizenz: MIT), um eine Verbindung zu einem webdis + redis-Backend über den Browser herzustellen. Für die Kommunikation mit dem Backend von redis + webdis benötigt man einen ES6 Promises-Ansatz, der functions für generische und keyless redis-Befehle und organisierte Klassen für Befehle bereitstellt, die auf Keys/Strings , Lists , Hash und Sets . Alle Funktionen / Methoden geben ES6 Promises zurück.

Angenommen, Sie haben Webdis mit redis eingerichtet, in der Standardkonfiguration, um Post-Anfragen an "/" zu akzeptieren, dann würde mit webdismay ein einfaches Beispiel für das Senden von Daten an den Server und das spätere Zurückrufen auf dem Browser aussehen (in ES6) :

import 'whatwg-fetch';  // fetch polyfill
import * as W from 'webdismay';
const k = W.key('some-redis-key');
k.set('Hello, World!');  // store the information
// wait a while, e.g. in the dev console or with setTimeout()
k.get().then((v)=>console.log(v));  // --> Hello, World!

Zu der Zeit, als ich dies schreibe (Juli 2016), erfordern die ersten beiden import Zeilen einige Übersetzungs- und Verpackungshilfen von Tools wie jspm oder browserify (wenn Sie den import ändern möchten).

Dies ist zwar nicht gerade anfängerfreundlich, könnte aber jemand erlauben, webdis + redis aus dem Browser zu verwenden, ohne ständig zwischen Javascript-Idiomen und Redis zu übersetzen und seinen eigenen Ajax zu schreiben.





api google-api token access-token