Accedi con Twitter o Facebook - Come collegare gli account

2

Ho sviluppato un sito e ho cercato di trovare un metodo per assicurarmi che tutti gli account dei social network di un determinato utente siano collegati tra loro. Ho avuto uno strappo dall'inizio e forse qualcuno qui ha un'idea di cosa fare.

Questo è il problema. Diciamo che qualcuno viene sul mio sito e fanno clic su login con twitter.

Il mio sito

  • crea un account (aggiunge utente al database dei membri)
  • aggiunge le credenziali di Twitter al database per quell'utente
  • registra l'utente in

Ora diciamo che questa persona si disconnette, e la prossima volta che entreranno nel mio sito accedono a Facebook.

Il mio sito

  • controlla il database membro per un utente con la stessa email di quella inviata da Facebook per l'autenticazione
  • Se non c'è corrispondenza, creo un utente
  • aggiungi le credenziali di Facebook per quell'utente

Qui è dove entra in gioco il mio problema. Twitter non invia una email dell'utente per l'autenticazione. Quindi il mio database e script, quando qualcuno accede con Facebook dopo aver già effettuato l'accesso con Twitter in precedenza, non riconosce che gli account devono essere collegati e crea un nuovo utente.

L'unico modo possibile per tenere traccia dei cookie? O mi manca qualcosa nella logica di questo?

Qualsiasi idea sarebbe ottima.

Dal modo in cui questo è per un sito web, usando php + mysql

Aggiornamento della domanda

Hey Demian, ho dato un'occhiata agli accessi alle modifiche e ho notato che non hanno un'opzione Twitter. Il mio problema non è quando l'utente è già registrato, tutto funziona alla grande e collega gli account. È più come questo.

Diciamo che un utente accede al mio sito per la prima volta con Twitter. Fornisco loro un ID utente univoco nella mia tabella di database "membri", quindi aggiungo le loro credenziali oauth per Twitter nella mia tabella oauth, collegandolo al loro ID membro.

\ Ora diciamo che passa un mese e un utente torna indietro. Questa volta, però, accedono a Facebook. Non c'è modo per me di dire quale utente sono nel mio database dal loro precedente accesso con Twitter perché non ho quell'ID membro univoco a cui collegarlo.

Ecco perché sto pensando di memorizzare l'ID membro univoco in un cookie è una buona idea, ma cosa succede se eliminano il cookie?

    
posta Clint Chaney 14.09.2011 - 04:28
fonte

1 risposta

2

Dai un'occhiata a come lo fa StackExchange. Vai alla pagina del tuo profilo e fai clic su "modifica login" e segui quel flusso. Onestamente, sembra essere il più ragionevole di quelli che ho visto.

Essenzialmente, memorizzerai un singolo oggetto utente nel tuo database e aggiungi provider di accesso (magari attraverso una tabella con un FK) come l'utente sceglie. Ora, quando il tuo utente si collega con uno qualsiasi dei provider, sai quale utente distinto (nel tuo sistema) rappresenta.

    
risposta data 14.09.2011 - 04:53
fonte

Leggi altre domande sui tag