2014-12-21 7 views
10

Diese letzte Woche habe ich mich mit Links überschwemmt und führte mich in zu vielen Kreisen zu zählen, so dass ich dachte, ich würde die Frage hier stellen. Ich habe eine Android-App, die Webviews anzeigt, die auf URLs verweisen, mit denen der Nutzer in seinem Google-Konto angemeldet sein muss (das Back-End ist in Google App Engine integriert). Da der Endnutzer wahrscheinlich ohnehin auf seinem Android in seinem Google-Konto angemeldet ist, möchte ich, dass der Anmeldevorgang automatisch erfolgt. Momentan öffnet sich dem Benutzer auf der ersten Webansicht das Google-Anmeldeformular und eine wirklich hässliche Folgeseite mit der Frage: "Möchten Sie zulassen, dass beispiel.appspot.com Ihr Google-Konto verwendet?"Automatische Anmeldung in Google-Konto auf Android-Webansicht

Dieser Prozess ist für Benutzererfahrung schrecklich. Ich habe hier und da sehr wenige Ressourcen in Bezug auf Auto-Login gesehen, aber ich bin ehrlich gesagt im Meer von fast-was-ich-will-aber-nicht-ganz verloren, um in der Lage zu sein, die Richtung zu erkennen, in die ich gehen sollte .

Ich lese Nick's Tutorial zur Authentifizierung einer App mit App Engine, aber nur mit dem Token bekomme ich nicht die eindeutig zugewiesene Benutzer-ID mit jedem Google-Konto auf dem Back-End zugeordnet. Darüber hinaus hat mich die vorherige Erfahrung auf die harte Tour gelehrt, dass die Webview-Sitzung einer App nicht mit der HTTPClient-Sitzung der App übereinstimmt. Selbst wenn ich mich mit Nicks Methode einloggen könnte, würde es mir nicht helfen, mich in die Webviews einzutragen.

Dann stieß ich auf this tutorial, die tatsächlich wirklich vielversprechend scheint, aber bis jetzt konnte ich seinen Code nicht anpassen, um mit meinem eigenen zu arbeiten.

Ich fand auch this SO link, was darauf hindeutet, dass alles, was ich tun muss, das Authentifizierungs-Token (das ich vermutlich über Nicks Methode erhalten konnte) in jede Web-Ansicht, die ich als Cookie lade, übergebe.

Und das ist es. Sie sind alle ziemlich unterschiedliche Herangehensweisen, also frage ich mich, ob einige von ihnen tatsächlich das sind, was ich will. Oder, wenn irgendwo da draußen ein einigermaßen einfacher Ansatz existiert. Ich würde es sehr zu schätzen wissen, wenn jemand eine einfache Antwort zu diesem Thema kennt. Vielen Dank!

+1

Haben Sie jemals eine Lösung gefunden? – AlleyOOP

Antwort

1

Aus Sicherheitsgründen WebViews haben keinen Zugriff auf den Cache des Telefons, Cookie-Speicher usw., stattdessen wird empfohlen, dass Sie die neue Chrome Custom Tabs verwenden, die Ihre Benutzer automatisch anmelden kann.


In Bezug auf "Möchten Sie erlauben, dass beispiel.appspot.com Ihr Google-Konto verwendet?" Bildschirm; Dies ist der Standardprozess OAuth und erfordert, dass sich der Nutzer anmeldet und Ihrer App Zugriff auf ihre Kontoinformationen gewährt.

Wenn Sie in Ihrer APP Engine App "example.appspot.com" eine API verwenden, für die Nutzerinformationen wie die Google Kalender-API erforderlich sind, müssen Sie den Nutzer ausdrücklich um seine Zustimmung für den Zugriff auf diese Informationen bitten .

Sobald Sie ihre Genehmigung erhalten haben, können Sie die access and refresh tokens speichern, um in ihrem Namen zukünftige API-Aufrufe durchzuführen, ohne dass die Benutzereinwilligung wiederholt werden muss. Sie können sehen, wie der gesamte Oauth-Fluss in der OAuth 2.0 Playground funktioniert.

Auch wenn Sie Ihren Nutzer automatisch angemeldet haben, wird auf der Genehmigungsseite immer noch der Zugriff Ihrer App auf Ihre App angezeigt. Die Entwicklung eines Hacks, um den Zugriff auf die Informationen eines Benutzers in seinem Namen zu erzwingen, ist ein schwerwiegender Sicherheitsverstoß.


Sie können Ihre Benutzer einen Blick auf den neuen Firebase Authentication Fluss zu Oauth Erfahrung in Ihrer App Engine-Anwendung einfach zu verwalten.

+0

Danke Jordan - das ist eine alte Frage, aber Google hat diesen Prozess seither mit Firebase Auth stark verbessert. – Pete

Verwandte Themen