2015-10-08 18 views
5

Sto lavorando a un'app mobile con accesso Facebook integrato (utilizzando fb android sdk). Ho anche un server con alcuni endpoint di riposo che vorrei proteggere. Mi sono guardato intorno per giorni cercando di trovare la soluzione migliore (leggendo gli articoli sul sito dev: https://developers.facebook.com/docs/facebook-login/security, altri post StackOverflow) ma non sono sicuro di quale sia la soluzione migliore.Accesso mobile Facebook e convalida lato server

Al momento ho la seguente configurazione in atto:

  1. utente accede su App utilizzando Facebook (mobile Android SDK).
  2. Quando si richiede una risorsa da un endpoint di resto, il token verrà aggiunto come intestazione.
  3. Sul lato server che convalidare il token con il fb debug_token endpoint (https://developers.facebook.com/docs/graph-api/reference/v2.5/debug_token)
  4. Se la convalida è successo permetto la mia risorsa resto da 'chiamato'

Come potete vedere avrò faccio la mia richiesta a Facebook (lato server) per ogni richiesta che ricevo. C'è un modo migliore per risolvere questo problema?

Grazie in anticipo!

+4

Verificare il token una volta, e poi memorizzare il risultato nella sessione. – CBroe

+0

Quindi dovrei conservare il risultato dal debug token memorizzato in un database? – Jdruwe

+0

A meno che non stiate estendendo il token, perché sarà valido solo per circa due ore. – CBroe

risposta

0

Facebook utilizza OAuth e con questo protocollo è necessario avere nelle intestazioni di risposta o nell'organico un attributo di tempo di scadenza associato al token.

Quindi è possibile memorizzare ovunque si desideri la tupla (token, token_expiry) per aggirare la richiesta su Facebook il più delle volte.

in realtà si dovrebbe avere una risposta con quegli attributi:

{ 
"access_token": <access-token>, 
"token_type":<type>, 
"expires_in":<seconds-til-expiration> 
} 
+0

Quindi stanno dicendo che dovrei inviare queste informazioni e salvarle sul mio server? – Jdruwe

+0

Sì, è possibile farlo (in memoria e/o long live persistency) per gestire l'autenticazione su tutte le richieste dell'utente –

Problemi correlati