OAuth v2 (Google API) Ablauf Zugriffstoken
Baue ich eine integration-Komponente mit einem grafischen Rahmen, der hat einen pre-build-OAuth2-Anschluss.
Dieser Rahmen benötigt folgende Felder für OAuth v2:
- Grant Typ
- Umfang
- Auth Server-URL
- Client-Id
- Client Secret
- Access Token
- Refresh token
Ich brauche, um die Daten von Google-Analytics-API, also ging ich zu Google Dev Console
(https://console.developers.google.com/project/927890000889/apiui/credential). Ich generierte eine "Client-ID für web-Anwendung'. Aus den Parametern dieses Objekt war ich in der Lage, füllen Sie einige der oben genannten Parameter
- Gewähren, type : 'authorisation_code'
- Client-Id : 'RANDOMCHARSam5o37nsiu730d.apps.googleusercontent.com'
- Client-Geheimnis : 'RANDOMCHARSiSwBA5OH5qYLUa'
Dann mit Google Oauth-Spielplatz (https://developers.google.com/oauthplayground) ich war in der Lage, füllen Sie die fehlenden bits
- Anwendungsbereich : 'https://www.googleapis.com/oauth/analytics'
- Auth Server-URL : 'https://accounts.google.com/o/oauth2/auth'
- Access Token : 'RANDOMCHARSQAQv4HRF5-JsQEzUS61lj2YremyCocv0PQ4-agpzJe'
- Refresh token : 'RANDOMCHARSLPJnL4FPaDc2KP6V8kCzjjho2kj4np_3x0'
Funktioniert alles einwandfrei, ich bin befugt sind, Zugang zu, und ich bekomme die Daten aus Google Analytics, aber nur für eine Weile, nach paar Minuten, wenn ich wiederholen, erhalte ich eine Genehmigung Fehler.
Ich glaube, dass das problem in Bezug auf den Ablauf des Zugangs-Token, aber ich weiß nicht, wie zu lösen.
Lohnt sich zu erwähnen, dass diese Tätigkeit es ist batch (ohne menschliche Interaktion), so dass niemand kann verlangen, einen neuen access-token.
Die integration framework ist nicht erweiterbar (kann ich nicht schreiben code, um die Erneuerung der code -) also ich glaube, es gibt einen Weg, um ein Zugangs-token, die nie erlöschen oder einen anderen Mechanismus, um das gleiche Ergebnis zu erzielen.
Bottom-line, ich bin mir nicht sicher, ob ich näherte sich die Anforderung korrekt, da der Anfang (Client-ID für web-Anwendung).
Jede Hilfe ist sehr willkommen,
Giovanni
InformationsquelleAutor Giovanni Vigorelli | 2014-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Access-Token verfallen gewöhnlich nach 60 Minuten. Wenn Sie einen refresh-token, das Sie verwenden können, die refresh-token, um einen neuen (gültigen) Zugangs-token.
Diesem Dokument wird erläutert, wie zu tun, dass:
https://developers.google.com/accounts/docs/OAuth2WebServer#refresh
Beantworten Ihre allumfassende Frage, ja, Sie nähert sich alles richtig. Alles, was Sie tun müssen, ist, den Fall behandeln, wo der access token abgelaufen ist erfrischend. Auch, wenn Sie die ursprünglich angeforderte access token die Antwort sollte Ihnen sagen, wie lange es gültig ist, so sollten Sie nur aktualisieren Sie das token, wenn es abgelaufen ist.
Ja das ist genau richtig. Beachten Sie, dass es möglich ist, für die refresh-token-Anforderung fehl. Dies geschieht in Fällen, in denen die ursprünglichen Vollmachtgeber widerruft den Zugang, aber wenn Sie zu den ursprünglichen Vollmachtgeber dann offensichtlich Sie nicht zu kümmern.
Können wir verlangen, dass so viele access-token durch einen refresh-token? So kann ich es auch Dauerhaft mit auf time Benutzer Zugriff? Ist es?
Deine Antwort hat mir sehr geholfen. Können wir hinzufügen, E-Mail und Passwort von gmail-Konten, wie unsere eigene? Da die Anwendung, mit der ich arbeite, ist ein automatisiertes Skript, welches ausgeführt wird, werden alle 24 Stunden per cronjob auf einem server. Also keine Benutzer-Interaktion gibt. Aber in der Prüfung der Authentifizierung und nachfragen, wählen Sie ein gmail-Konto zu authentifizieren.
Wie frefresh?, docs geändert haben
InformationsquelleAutor Philip Walton
Können Sie die Option Aktualisieren verwenden Token, um es lange benutzt.
Die Google-Auth-server ausgestellt Refresh-tokens verfallen nicht,
Ein token könnte aufhören zu arbeiten für eine der folgenden Gründe:
Hat der Benutzer widerrufen-Zugang.
Das token nicht verwendet wurde, für sechs Monate.
Der Benutzer geändert Passwort und der token enthält die Gmail-Bereiche.
Das Benutzer-Konto überschritten hat, eine bestimmte Anzahl von token anfordert. Derzeit gibt es ein limit von 50 refresh Token pro Benutzer-account
pro client.Wenn das limit erreicht ist, wird ein neues token erstellen automatisch invalidiert die älteste token ohne Warnung.
Diese Grenze gilt nicht für service-Konten.
aus: https://developers.google.com/identity/protocols/OAuth2
InformationsquelleAutor Haryono