2009-07-09 5 views
9

Ich möchte eine POST-Anfrage von einer Android App an App Engine senden und sie mit dem Google-Konto des Nutzers verknüpfen können. Ich habe gelesen, dass Sie ein Authentifizierungstoken erhalten und es mit der POST-Anfrage senden müssen. Bietet Android eine Möglichkeit, dieses Token anzufordern? Und wie würde GAE es verarbeiten?Einfache Möglichkeit, POST-Anfragen von einem Google Android-Client an Google App Engine zu authentifizieren?

Ich denke, das sollte einfach sein und mir fehlt etwas offensichtlich.

Danke!

Antwort

9

Informationen zur Authentifizierung mit einer App Engine-App mithilfe der im Telefon gespeicherten Anmeldeinformationen finden Sie unter my blog post.

Es ist möglich, Benutzer programmgesteuert zu authentifizieren. Im Python-SDK führt die appengine_rpc module diese Funktion aus. Kurz gesagt, lautet das Verfahren folgendermaßen:

  • Verwenden Sie ClientLogin, um ein einmaliges Authentifizierungs-Token mit dem Benutzernamen und dem Kennwort des Benutzers zu erhalten.
  • Machen Sie eine POST-Anfrage an yourapp.appspot.com/_ah/login, mit den Argumenten continue = http://localhost/&auth=authtoken (wobei authtoken das One-Use-Token ist, das Sie aus Schritt 1 erhalten haben).
  • Die zurückgegebene 302-Antwort abfangen und den zurückgegebenen Google-Cookie erfassen.
  • Geben Sie den Cookie für alle nachfolgenden Anfragen ein.
  • Für quälende Details finden Sie in der Quelle von appengine_rpc.py, oben verlinkt.

    +0

    süß! Vielen Dank, Nick. – ehfeng

    +0

    Ich bin neu in Android .. und mit einem schnellen Blick .. das sollte noch nach 2 Jahren tun .. richtig ?! – Lipis

    2

    Ab Android 2.0 können Sie AccountManager verwenden, um ein Authentifizierungstoken für Konten vom Typ com.google anzufordern. Sie können dann durch Drücken der URL den Benutzer zu einer App Engine App authentifizieren:

    http://[yourapp].appspot.com/_ah/login?auth=[theauthtoken]

    Die Cookies in der Antwort setzen können auf zukünftige Anforderungen an Ihre Anwendung huckepack werden, um den Benutzer zu authentifizieren gegen Ihre App

    In Abwesenheit von Beispielcode, der genau dies tut, können Sie den Code Sample Sync Adapter (im Lieferumfang des SDK enthalten) für eine allgemeine Idee zum Anfordern von Authentifizierungstoken.


    EDIT: Just realisiert Nick über den zweiten Teil geschrieben, aber das AccountManager#getAuthToken Bit ist neu ab Android 2.0.