2009-08-25 7 views
5

Sono abbastanza nuovo per OpenId e sto avendo un po 'di problemi a capire come usare OpenId una volta completata l'autenticazione.Le migliori pratiche per lo sviluppo del sito con openId - tabella utente?

Sto creando un nuovo sito e non ho avuto problemi a far funzionare l'autenticazione openId. Ma non sono sicuro di come dovrei memorizzare i dati relativi all'utente una volta che l'utente ha effettuato il login.

Prima di openId, avrei il mio processo di registrazione, un UserTable con un UserId unico (numero intero) e tutte le altre tabelle che coinvolgono i dati relativi ad alcune attività dell'utente avrebbero solo una colonna UserId che identifica l'utente.

Devo utilizzare l'ID OpenID nelle mie tabelle? Devo creare una semplice tabella OpenId-> UserId su cui ogni account di accesso è mappato e avere i dati memorizzati come prima? E cosa succede quando un utente vuole utilizzare diversi provider OpenId?

risposta

6

Suggerirei di avere ID utente per la mappatura OpenID, proprio perché avrebbe senso averlo uno-a-molti - è una buona pratica consentire alle persone di avere più di un'identità OpenID legata all'account .

+0

Quindi credo che quando un utente è autenticato, dovrei controllare la mia tabella utente e vedere se l'OpenID esiste, se non creare una nuova riga ... ma come si fa (in modo sicuro) permettere alle persone mappare più OpenId a un utente esistente? – Bjorn

+0

Sì, in realtà, se l'utente viene fornito con un 'OpenID 'sconosciuto, sarebbe meglio chiedere se l'utente vuole creare un nuovo account o associarlo a quello esistente (in quest'ultimo caso l'utente deve autenticarsi con il altro OpenID). Per quanto riguarda il modo sicuro di gestire OpenID - è più o meno una cosa dell'interfaccia utente. Una delle soluzioni richiederebbe la conferma dopo il successo del roundtrip 'OpenID' (o asserzione di identità non richiesta). L'altro sarebbe utilizzare un nonce speciale o un cookie per il viaggio di andata e ritorno. Qualunque cosa tu possa inventare. –

3

Io uso due tavoli presso il mio sito:

1) Utenti - immagazzinare le informazioni del profilo utente

2) Credenziali - la memorizzazione delle informazioni di accesso utente. Le credenziali possono essere diverse: {email, password/hash}, openID, ecc.

2

Le Domande frequenti su Yahoo OpenID, http://developer.yahoo.com/openid/faq.html, hanno un ottimo collegamento a una ricetta creata da Joseph Smarr a Plaxo che descrive in dettaglio l'aggiunta di OpenID a un sito Web che ha già utenti, includere DB struttura della tabella:

http://www.plaxo.com/api/openid_recipe

Questa è una guida guida passo-passo per l'attuazione OpenID supporto consumatore lato con un sito web che ha già utenti account . Spiegherà come consentire ai nuovi utenti di registrarsi per un account sul tuo sito utilizzando il loro URL OpenID e come consentire agli utenti esistenti di di allegare i propri OpenID in modo che possano accedere utilizzando i loro.

Problemi correlati