Wann ist access_type = Online geeignet? :OAuth2 - Google-API
Beim anfordern von OAuth-Anmeldeinformationen, kann ich angeben, die access_type Offline oder Online.
Entscheiden sich für den Online-Zugang geben Sie zwingt den Benutzer zu genehmigen, Zugriff auf meine app jedes mal, wenn Sie einloggen. Warum ist das so? Hat nicht der Nutzer bereits genehmigt ist meine app?
Update #1:
Habe ich meine approval_prompt der Einstellung 'auto'.
Wenn ich mich nur Abmelden aus Google löschen, ohne cookies, ist es nicht aufgefordert, mich wieder. Aber das löschen der cookies bringt wieder den grant-Bildschirm.
Update #2:
Es funktioniert durch das OAuth-Spielplatz. http://code.google.com/oauthplayground/
Verwendung von OAuth 2.0 für die Web-Server-Anwendungen
https://developers.google.com/accounts/docs/OAuth2WebServer
Update #3:
Die entsprechenden code-snippets
Helper-Methode zum generieren von OAuth URL
def build_auth_uri
return @client.authorization.authorization_uri(
:access_type => :online,
:approval_prompt => :auto
).to_s
end
Aufruf der Helper-Methode in der Sicht
<a href="<%= build_auth_uri %>"> Connect Me! </a>
Generiert OAuth-URL auf der Webseite
https://accounts.google.com/o/oauth2/auth?access_type=online&approval_prompt=auto&redirect_uri=http://localhost:3000/gclient/gcallback&response_type=code
https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/userinfo.profile&state=profile&redirect_uri=http://localhost/oacallback&response_type=code&client_id=123.apps.googleusercontent.com&approval_prompt=auto&access_type=online
Das Verhalten ist immer noch nicht eindeutig für mich. Es scheint einen Unterschied zwischen tun dies auf localhost vs gehosteten website zu.
Gab es da jemals eine Lösung für dieses? Ich sehe das gleiche Problem. Ich habe auch bemerkt, dass egal wie viele Male ich genehmige die app erscheint nicht in " meine Apps Verwalten Seite.
InformationsquelleAutor Diwa Iyer | 2012-07-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es einen anderen parameter, der ins Spiel kommt, in diesen fließt und ich vermute, Sie laufen hinein. Es ist die
approval_prompt
parameter.Wenn
access_type=online
Sie sind auch erlaubt, geben Sie einen Wert fürapproval_prompt
. Wenn es aufapproval_prompt=force
Ihr Benutzer wird immer aufgefordert, auch wenn Sie bereits erteilt.Auf der anderen Seite, wenn
access_type=offline
,approval_prompt
nur aufapproval_prompt=force
, aber für diese Einschränkung sind Sie auch einerefresh_token
die Sie verwenden können, zu aktualisieren Sie Ihre access-token.Überprüfen Sie die URL, mit der Ihre
access_type=online
ist Eröffnung. Versuchen Sieapproval_prompt=auto
. Die grant-screen soll nur das erste mal angezeigt.Es könnte so sein. Wenn Sie löschen alle Ihre cookies, Sie werden abgemeldet von Google und Sie werden gezwungen sein, sich erneut anmelden, zu authentifizieren. Haben Sie ein Beispiel für die fehlerhafte code handy? Ich würde gerne schauen 🙂
Thx Jenny! Ich habe einen entsprechenden code-Schnipsel, die Frage. Sie brauchen mehr? In Bezug auf die cookies, wenn die cookies gelöscht sind, wird der Benutzer erforderlich, um Zugang zu gewähren, wieder? Ich kann verstehen, wenn Sie brauchen, um sich erneut authentifizieren.
access_type=offline ist die beste Wahl, da die refresh-token, der zurückgegeben wird, kann benutzt werden, ad infinitum für die Ausgabe neuer access_tokens ohne auth_endpoint/code-routine wieder & wieder.
Ist diese information noch aktuell? Ich werde
access_type=offline&approval_prompt=force
und ich bin noch immer nicht in ein offline-Zugriff-Berechtigung-Eingabeaufforderung.InformationsquelleAutor mimming