Sto cercando di implementare l'autenticazione OpenID per il mio sito. Ecco lo scenario:
voglio che l'utente sia in grado diMemorizzazione delle informazioni OpenID necessarie
- login utilizzando solo OpenID (. Utente può solo ottenere verificato visitando provider OpenID non c'è bisogno di creare un account personalizzato con la posta elettronica-password),
- Via email/password (l'utente si è registrato sul sito compilando un modulo)
- Allega gli ID aperti ai propri account (openids + email per un account).
Ora non so quali credenziali dovrei memorizzare per l'id aperta. e non sono sicuro dello schema del DB. Ecco lo schema del database:
Table: Users
UserId => PK
... => Custom info. Not related to authentication.
Table: Authentication
AuthenticationId => PK
LoginId => (when custom site membership => email address) (when openId => openid unique address)
UserId => FK to Users.
Provider =>(when custom site membership => "CUSTOM") (when openId => openid provider address)
Password => filled when using custom membership. empty when using open id.
Ora, quando un utente accede a, sia utilizzando l'appartenenza OpenID/custom, mi basta guardare a tavola l'autenticazione e cercare credenziali e ottenere l'utente appropriato. Se nessun utente esiste, creo un nuovo utente e aggiungo una voce nella tabella di autenticazione.
La domanda principale: memorizza
Provider
eLoginId
(si vedano i commenti qui sopra per vedere ciò che viene memorizzato in questi campi) sufficiente per la memorizzazione di autenticazione OpenID? Devo memorizzare dati aggiuntivi in modo che quando l'utente ritorna, posso autenticarlo in base ai miei dati salvati?Suggerite qualche altro (più efficiente) approccio per implementarlo?
Grazie.
Ho rimosso la colonna 'Provider' e aggiunto' IsOpenId' di tipo 'bit'. Quali sono i vantaggi di separare le tabelle di autenticazione (per openid e personalizzato) [Invece di rimuovere la colonna 'Password' non necessaria per le autenticazioni di openid]? – Kamyar
Ho rinforzato la mia risposta per te. –
Perfetto! Grazie. – Kamyar