So erhalten Sie ein Aktualisierungstoken bei der Verwendung des Google API JS-Clients

8

Ich habe versucht, eine App zu implementieren, bei der der Nutzer Zugriff auf Google Analytics gewähren muss. Ich habe dieses Tutorial verfolgt:

Ссылка

Und an einigen anderen Stellen gibt es einen Code für AngularJs, der dieselbe Funktion verwendet

Ссылка

Mein Problem ist, dass die Auth ziemlich gut funktioniert, aber es gibt kein refresh_token zurück. Es gibt nie ein refresh_token zurück. Ich habe alle verfügbaren Möglichkeiten im Internet ausprobiert.  1. Das erste Mal,  2. Verwenden Sie prompt = force etc etc .. Aber nichts scheint das refresh_token zurückgeben. Ich denke, dass der Teil vom Client oder etwas übersprungen wird.

Ich muss wissen, wie ich das refresh_token bekommen kann, wenn der Benutzer das erste Mal Zugriff gewährt, damit ich es speichern kann.

    
Sambhav Sharma 27.06.2014, 14:21
quelle

1 Antwort

18

Es wird kein Aktualisierungs-Token wie geplant zurückgegeben. Das Tutorial und der von Ihnen erwähnte Code verwenden die Google APIs-Clientbibliothek für JavaScript . Diese Bibliothek verwendet den OAuth 2.0-clientseitigen Nachrichtenfluss , um Anfragen zu stellen, die eine Autorisierung erfordern.

Wie im OAuth 2.0-Autorisierungsframework heißt :

  

Der clientseitige OAuth 2.0-Datenfluss (AKA Implicit flow) wird verwendet, um Zugriffstoken zu erhalten (die Ausgabe von Aktualisierungstoken wird nicht unterstützt), und ist für öffentliche Clients optimiert, von denen bekannt ist, dass sie einen bestimmten Umleitungs-URI ausführen. Diese Clients werden normalerweise in einem Browser mit einer Skriptsprache wie JavaScript implementiert.

     

Der Autorisierungsserver darf kein Aktualisierungs-Token ausgeben.

Tatsächlich ist der Autorisierungscode-Fluss der einzige, der das Aktualisierungs-Token ausgibt, und Google unterstützt diesen Fluss in diesen Szenarien: Webserver-Anwendungen, Installierte Anwendungen und Anwendungen auf Geräten mit begrenzter Eingabe, aber nicht Client-seitig (JavaScript ) Anwendungen oder Dienstkonten. Weitere Informationen erhalten Sie hier .

Sie werden auf diese Weise kein Refresh-Token erhalten.

    
Owen Cao 28.06.2014, 15:30
quelle