2017-10-05 1 views
0

Meine Frage ist bereits zu etwa 90% in den folgenden Fragen beantwortet:
How to get the refresh token with Google OAuth2 Javascript library?Wie kann ich access_token von der Google OAuth 2.0-API in einer reinen clientseitigen Anwendung aktualisieren?

ich einen clientseitige JS Web-App habe. In dieser Anwendung möchte ich Google APIs verwenden. Um das zu tun, muss ich die access_token jede Stunde aktualisieren, aber ohne zeigt den Google-Anmeldebildschirm für den Benutzer immer wieder. Derzeit gibt es keinen serverseitigen Code und ich möchte serverseitigen Code vermeiden, sodass meine Anwendung portabler ist (z. B. Electron).

Das bedeutet, dass die einzige Möglichkeit, die ich habe, Option zwei aus der Antwort in der oben stehenden Frage ist. Es heißt:

Lassen Sie Ihren Client einfach Zugriffstokens anfordern, so wie sie benötigt werden. Legen Sie immediate=true fest, damit keine Interaktion mit dem Benutzer sichtbar ist.

Ich habe beide Dokumentationen sah durch: Google API Client Library und Google Identity Platform (das ist der direkte OAuth 2.0 Endpunkt ist, die von der Client-Bibliothek im Hintergrund verwendet wird wird).

Ich kann keine Option namens immediate finden. Aber dieser Anser sagt mir, dass es möglich sein sollte, eine access_token innerhalb einer reinen Client-Seite Web-App aber ohne eine refresh_token zu aktualisieren. Aber wie?

Außerdem möchte ich unbedingt die Client-Bibliothek vermeiden, weil es zu schwierig ist, sie in ein webpack-basiertes Projekt zu integrieren ... Also interessiert mich hauptsächlich, wie die HTTP-Anfrage an den OAuth-Endpunkt aussehen soll.

bearbeiten: feste falschen Link

Antwort

0

Die Antwort, die Sie im Zusammenhang mit bezog sich auf eine frühere Version der Client-Bibliothek. Die aktuelle Version ist dokumentiert unter https://developers.google.com/identity/protocols/OAuth2UserAgent und ich glaube (NB nicht getestet), dass das Äquivalent zu prompt=none

+0

Es scheint möglich, dass dies das ist, was ich suche. Was mir sonst noch in den Sinn kommt, ist die '.grantOfflineAccess()' Methode. Jetzt muss ich herausfinden, was der Unterschied ist und sobald ich genau weiß, was ich brauche, was das aus einer HTTP-Perspektive tut, kann ich es selbst implementieren. Danke bis jetzt. –

+0

grantOfflineAccess soll in Verbindung mit einem Serverauthentifizierungsfluss verwendet werden. Wenn Sie nach einer reinen JS/Browser-Lösung suchen, grantOfflineAccess ist es nicht. Ich habe einen Kommentar zu https://github.com/google/google-api-javascript-client/issues/232 gelesen, der "jedoch, da GSI v2 sich um das Zwischenspeichern und Auffrischen des Tokens kümmert", so kann es durchaus sein, dass die Bibliothek dies tut der Job für dich. – pinoyyid

+0

Ich habe jetzt selbst ein Problem eröffnet: https://github.com/google/google-api-javascript-client/issues/343 Dort wurde mir im Grunde dasselbe gesagt. Es ist nur: Die automatische Aktualisierung des Tokens scheint nicht zu funktionieren. Weitere Details finden Sie in der Ausgabe. –

Verwandte Themen