2014-04-25 12 views
10

Sono riuscito a programmare un login con il sistema Facebook nella mia applicazione web PHP. Ma ora sono un po 'bloccato nelle migliori pratiche.Best Practice Login con Facebook, Twitter, Google o registro

Devo salvare l'ID utente dell'utente nel mio Database, l'indirizzo e-mail dell'utente e/o nome e cognome? Lo sto chiedendo perché sto pensando agli utenti che cambiano il loro indirizzo e-mail, che non sono in grado di accedere la prossima volta se è così.

E come posso sapere che quando un utente effettua l'accesso con Facebook e, ad esempio, la volta successiva che Twitter è lo stesso utente? Probabilmente basato sul suo indirizzo e-mail? Ma penso che se non l'avessi cambiato, la tua e-mail di Facebook standard è [email protected], giusto?

Non sto chiedendo il codice qui, per favore forniscimi alcune esperienze o buone pratiche.

Grazie in anticipo!

Stijn Hoste

+1

Ciò che si salva nel database dipende dal tipo di dati necessari e quando è necessario. E no, chiedere il permesso 'email' ti dà l'indirizzo email dell'utente registrato con FB (non l'indirizzo [email protected]) - ma questo campo potrebbe essere _blank_ se si sono registrati per FB usando il loro cellulare. – CBroe

+0

Grazie per la risposta, ho solo bisogno di informazioni di accesso. E una sorta di ID per memorizzare i dati collegati a un determinato utente. Quindi credo che andrò con il campo della posta elettronica, che è unico per un utente. –

+1

Bene, come ho detto, potresti non ottenere affatto un indirizzo email e una stringa vuota non è univoca :-) – CBroe

risposta

5

Quanto a me, la migliore pratica è utilizzare oauth2 libreria (tutti gli eventi sociali sono supportati) e utilizzare database con due tabelle: utenti e users_socials.

Quando gli utenti tentano di accedere tramite social, lo script creerà record sulle tabelle e collegherà queste tabelle tramite una relazione "da uno a molti". Tutti i social restituiscono un identificatore univoco per l'utente auth e lo script può inserirlo sullo spazio di archiviazione per utilizzarlo ulteriormente.

Tabella scructure e di test dei dati

utente Tabella

user_id | email 
________________ 
1   | [email protected] 
2   | [email protected] - if the social cannot return an email address 

user_socials Tabella

social_id | user_id | social 
____________________________ 
123213213 | 1  | facebook 
332123213 | 1  | twitter 
323232321 | 2  | vk 

Questo modello è buono, perché un utente può collegare molti eventi sociali con il suo account

Ps Facebook, Twitter, Google+ - restituire l'e-mail utente

+4

Nella mia esperienza, "inventare" uno pseudo-indirizzo email solo per creare un record utente valido è di solito indicativo di un problema con il modello, e quasi sicuramente causerà dolore in un secondo momento. Avere dati reali mescolati con dati falsi causa così tanti problemi.Se qualcuno è autorizzato a creare un account senza un indirizzo e-mail, è necessario progettare il modello in questo modo; il che significa che l'indirizzo e-mail non può essere il tuo principale mezzo di identificazione. Dal mio punto di vista, '323232321 @ vk.com' è un sottotitolo davvero fuorviante per' null'. Solo i miei due centesimi. –

+0

@ mindplay.dk ottimo commento. Sto cercando di progettare attorno a questo problema atm. Avete suggerimenti o collegamenti che potrebbero aiutare? –