2013-05-22 14 views
9

Ho un'API REST web per un'applicazione mobile che supporta la registrazione/accesso classica con autenticazione utente/password e token.Come implementare un accesso di Facebook sicuro/registrare/connettere il servizio web per un'applicazione mobile?

Dal momento che la registrazione è senza conferma tramite e-mail, come posso implementare una registrazione/accesso/collegamento sicuro con il servizio di Facebook?

Il mio primo approccio: che ricevo da applicazioni mobile facebook_id, facebook_email, facebook_name: utente

  • ricerca per facebook, se esiste ritorno perfetto quell'utente, altrimenti creare un nuovo utente con questi params

  • problema: presumo che uno facebook_id può essere facilmente trovato da qualsiasi altra applicazione .. quindi nulla mi impedisce di supporre che io sia qualcun altro e accedere con il suo facebook_id

  • possibile soluzione: Prendi il access_token anche l'applicazione mobile e verificare sul lato server che il access_token è quella corretta in relazione con l'facebook_email ricevuto

Un altro problema potrebbe essere:

  • La persona A sta creando un account classico con l'email [email protected]
  • La persona B, una settimana dopo, collega il suo account Facebook (con la stessa email [email protected]). La prima idea sarebbe quella di collegare l'account clasic con questo account facebook. Ma poi la Persona B si impadronirà dell'account della Persona A.

Opzionale: anche che cosa sarebbe è la migliore pratica per la scadenza del token sulle applicazioni mobili. Ho letto qualcosa di circa 2 ore, ma ancora l'applicazione facebook viene ancora registrata dopo metà dell'anno, credo.

Per garantire la sicurezza, supponiamo di poter ottenere qualsiasi cosa importante (access_token, email, ...) dal lato client nel mio webservice: qual è la migliore pratica che potrebbe garantire la migliore sicurezza in questo caso: anche le regole client-side: dovrebbero esserci 2 servizi distinti per Login e SignUp? Ad ogni modo, una rapida gilda/un flusso passo-passo sarebbe perfetta.

+0

Ho lo stesso problema. Hai trovato una soluzione? – Lee

risposta

1

Avete controllato il Facebook Developer Login documentation? Coprono login flow e generating user & app tokens (chiamando l'SDK FB per JavaScript (FB.GetAuthResponse), nel qual caso lo AuthResponse includes a userID parameter su cui è possibile mappare l'ID della propria app). La scadenza dei token viene gestita anche dall'SDK dell'FB. Il flusso di login di Android sembra abbastanza semplice e il flusso di login di iOS sembra ancora più semplice.

+5

Non si tratta di come utilizzare l'API di Facebook. È come progettare i miei servizi Web per trattare tutti i casi d'uso (principalmente quelli elencati nella domanda) –

Problemi correlati