2011-01-11 8 views
6

Ich entwickle eine Android App sowie eine Website (die auch Kommunikation mit dem Android Client hat). Ich möchte FB-Login verwenden, aber das Problem, das ich sehe, ist das:Android Facebook Login und zum Webserver

Client, FB Login verwenden und erhält dann ein access_token.

Wie kommunizieren Client und Web Server nur mit diesem access_code, da der Webserver wissen muss, auf welches Konto der Client sich bezieht. Ich möchte auch FB-Login auf der Website implementieren.

Eine Methode, die ich dachte, war:

Client Login: 1) Verwendung FB Login und erhalten access_token. 2) Verwenden Sie access_token, um einige Benutzerinformationen zu erhalten. 3) Geben Sie access_token und Benutzerinformationen an den Webserver weiter. 4) Webserver führt auch den gleichen FB-Vorgang mit dem access_token aus und ruft die Benutzerinformationen ab. 5) Überprüfen Sie die Übereinstimmungen der Benutzerinformationen und bestimmen Sie das Benutzerkonto basierend darauf. 6) Richten Sie ein anderes access_token zwischen Client und Web Server für diesen Link ein.

Macht es sogar noch mehr gültig oder macht nur die Anmeldung und das Abrufen der Benutzer-E-Mail-Adresse als das tatsächliche Konto und teilt dem Webserver mit, dass dies das zu verwendende Konto ist.

Oder hat jemand das auf andere Weise gemacht?

+0

Stephen, haben Sie jemals einen sicheren Login-Flow entwickelt? Ich stehe vor dem gleichen Problem und Ihre Schritte sind, was ich versuchen würde. Ich frage mich, ob es erfolgreich war. –

+0

Brady, hast du was gemacht :) – ThanksBro

+0

hast du das herausgefunden? entweder von euch: Stephen oder @BradyEmerson Ich versuche das gleiche zu tun und muss einen guten Weg kennen. – necromancer

Antwort

1

Für die Kommunikation zwischen Ihrem Client/Server sollten Sie Ihre eigene Client-ID verwenden.
Relais nicht auf dem access_token Facebook gibt Ihnen, weil es in mehreren Szenarien geändert hat.
Das Erhalten der E-Mail ist auch keine vollständige Lösung, da Benutzer entscheiden können, Ihnen ihre E-Mails nicht zu geben.

In der Regel müssen Sie Facebook Connect auf beiden Seiten implementieren.

1.Connect
2.Get Berechtigungen von dem Benutzer auf Facebook (lesen Sie über Berechtigungen hier: http://developers.facebook.com/docs/reference/api/permissions/)
3.Registrieren es als Benutzer und geben Sie ihm eine ID (Sie können Facebook verwenden uid wenn Sie möchten) .

Wenn der Benutzer zu Ihrer Website/App zurückkehrt, müssen Sie ihn erneut anmelden, seine UID abrufen und den Server nach den Benutzerdetails abfragen.

Eine Sache über das access_token, Sie müssen es facebooks API abfragen. Sie können es von Facebook jedes Mal erhalten, wenn sich ein Benutzer auf Ihrer Website/Mobilgerät über Facebook anmeldet, oder Sie können den Benutzer um die Berechtigung offline_access bitten, und dann haben Sie dasselbe access_token, bis der Benutzer sein Passwort auf Facebook usw. ändert es auf den Dokumenten).
Mit dieser Methode können Sie Facebook APIs abfragen, obwohl der Benutzer derzeit nicht auf Ihrer Site angemeldet ist.