2014-05-08 2 views
9

Ich habe eine mobile App, die mit dem Backend-Server arbeitet, würde ich gerne verstehen, wofür die besten Praktiken sind Facebook verwenden, um sich anzumelden (Konto erstellen) und dann das ganze System synchron zu halten.Was ist der richtige Weg Facebook Login für mobile App (mit node.js/pass.js Server)

Hier ist, was ich bisher verstehe: - Mobile App kann die Anmeldung auf dem Gerät tun und erhalten Sie die access_token - Access Token kann auf den Server übertragen werden. Ich habe einen Proof-of-Concept gemacht, indem ich den Pass-facebook-Token verwendet habe, der an eine api.myhost.com/auth/facebook Route angehängt wurde, und es scheint, als könnte ich den Benutzer authentifizieren und seine FB-Daten abrufen. Daher kann ich ihn entweder zu bestehenden Benutzer in meiner Datenbank zuordnen oder einen neuen Datensatz erstellen.

Was ich nicht verstehe: 1) Muss ich https für die Übertragung des FB-Tokens auf meinen Server verwenden?

2) Was mache ich für meine anderen Anfragen, die authentifiziert werden sollen. Ich denke nicht, dass ich für jede Anfrage zu FB gehen kann. Eine Option, die mir in den Sinn kommt, ist, ein anderes (mein eigenes) Zugriffstoken zu generieren und es als Ergebnis der FB-Authentifizierung zurückzugeben.

Die einfachste Möglichkeit besteht darin, Pass-facebook-Token-Sitzungen zu verwenden (so dass die Cookie-Sitzungs-ID in die Benutzer-ID serialisiert und de-serialisiert werden kann). Aber das bedeutet, dass ich einige KV-Speicher für Sitzungen beibehalten muss. Ein anderer Weg wäre, mein eigenes zufälliges Token für diesen Benutzer zu generieren, es zusammen mit der Benutzer-ID bei erfolgreicher Anmeldung zurückzugeben, es im Benutzerdatensatz zu speichern und jeden API-Aufruf vom Client dieses ID/Token-Paar bereitzustellen und erneut zu validieren jedes Mal manuell, ohne auf den Pass angewiesen zu sein. Oder vielleicht mit der lokalen Strategie des Passes?

Welcher ist besser? Was sind Vor-/Nachteile von jedem?

2) Wenn ich FB-Token für die Veröffentlichung in FB und für die Analyse von Graphen (Freunde usw.) verwenden möchte, plane ich, das Token auf dem Server zu speichern . Wie oft muss ich es auffrischen? Jedes Mal, wenn die App ein Token auf dem Client startet und aktualisiert, sollte ich mich erneut mit meinem Server authentifizieren, indem ich ein neues FB-Token verwende? Was ist mit dem Aktualisieren von Benutzer-FB-Tokens bei Server-zu-Server-Aufrufen? Sollte ich es jemals tun, wenn ich den Zugriff auf die FB-Daten des Benutzers behalten möchte, aber der Benutzer meine Anwendung beendet oder zu selten verwendet?

Gibt es irgendwo ein Kochbuch eines Arbeitsschemas, das gut funktioniert?

Danke!

+0

Haben Sie jemals etwas Nützliches hier gefunden? – SJoshi

Antwort

0

Facebook Token Sicherheit

Das Token, das Sie auf Ihrem mobilen App-Client erstellt haben, für Ihre Facebook-App ist, dass Sie die ID in der Authentifizierung gegeben haben. Ich würde immer HTTPS verwenden, wenn Token über das Internet oder andere flüchtige Informationen kommuniziert werden.

Facebook Token auslaufenden & erfrischende

Wenn Sie die Authentifizierung in Ihrer mobilen App tun, werden Sie oft die Ablaufzeit des Tokens erhalten in der Antwort mit dem Token. Der Tokenablauf wird in der Facebook API erklärt.

Native mobile Apps, die die SDKs von Facebook verwenden, erhalten langlebige Zugriffsmarken, die ungefähr 60 Tage lang gültig sind.Diese Token werden einmal pro Tag aktualisiert, wenn die Person, die Ihre App verwendet, eine Anfrage an die Facebook-Server sendet. Wenn keine Anforderungen gestellt werden, wird das Token nach etwa 60 Tagen ablaufen und die Person muss den Login-Fluss erneut durchlaufen, um ein neues Token zu erhalten.

Über das Token erfrischend:

Auch die langlebigen Zugriffstoken wird schließlich verfallen. Sie können jederzeit ein neues langlebiges Token generieren, indem Sie die Person zurück an den von Ihrer Webanwendung verwendeten Anmeldefluss senden. Beachten Sie, dass die Person sich nicht erneut anmelden muss. Sie haben Ihre App bereits autorisiert sofort aus dem Login-Flow mit einem aktualisierten Token zurück in Ihre App umzuleiten - je nachdem, welche Art von Login-Flow Sie verwenden, hängt dies von der Person ab. Wenn Sie beispielsweise das JavaScript SDK verwenden, wird dies in Der Hintergrund, wenn Sie einen serverseitigen Flow verwenden, wird der Browser schnell zum Login-Dialog und dann automatisch und sofort wieder zurück zu Ihrer App umleiten.

Verwandte Themen