Αν θέλετε να επιτρέψετε στους χρήστες του site σας να είναι σε θέση να συνδεθείτε με το Facebook Connect, Λογαριασμό Google, κλπ, πώς θα σχεδιάσουν τη βάση δεδομένων σας, έτσι ώστε να είναι όλα ολοκληρωμένα;
Η ενασχόληση με πολλαπλά συστήματα σύνδεσης (Facebook Connect, Λογαριασμό Google, και άλλα)
Προτείνω τη χρήση ενός πίνακα Λογαριασμοί για να κρατήσει τα δεδομένα τοπικό λογαριασμό σας, που στη συνέχεια θα σχετίζονται με έναν πίνακα AthenticationMethods ή ένα τραπέζι Διαπιστευτήρια όπου θα πραγματοποιήσει σχετικές εξωτερικές λεπτομέρειες ταυτότητας. Αυτό επιτρέπει το site σας και όλα πολυπλοκότητας που να σχετίζεται με Λογαριασμοί και διαδικασία σύνδεσης σας με όμορφα αφηρημένη οι διάφορες μορφές της ταυτότητας που μπορεί να θέλετε να υποστηρίξουν. Δεδομένου ότι κάθε μέθοδος ελέγχου ταυτότητας μπορεί να έχουν διαφορετικά επίπεδα πολυπλοκότητας προτείνω να ψάχνει στα διάφορα APIs και παραπομπές όλα αυτά για να βρουν κοινές ομοιότητες. Πιο σημαντικό θα θέλετε να εντοπίσετε πού είναι διαφορετικές, έτσι ώστε να διαπιστευτήρια πίνακας μπορεί να χειριστεί τα διάφορα κομμάτια των δεδομένων που κάθε API μπορεί να requrie. Μην ξεχάσετε να συμπεριλάβετε το OpenID!
Έχω χρησιμοποιήσει δύο πεδία σε τοπικό λογαριασμό ή οδηγό τραπέζι μου. Ένα ονομάζεται «externalSystemId» (tinyint), και το άλλο είναι «Το εξωτερικό» (ΔΙΠΛΟ). Έχω κάποιες σταθερές κώδικα που καθορίζουν τις διάφορες externalSystemId τιμές, δηλαδή. EXTERNAL_SYSTEM_FACEBOOK = 1, EXTERNAL_SYSTEM_OPENID = 2, κ.λπ. Η ExternalId είναι φυσικά id του χρήστη από το σύστημα αυτό.
Ενώ το χειρισμό ενός αντικειμένου χρήστη στον κώδικα μου, μπορώ εύκολα να καθορίσει ποιες σύστημα ο χρήστης είναι από το, και τοποθετήστε τους κατάλληλους μηχανισμούς κώδικα για την επικύρωση ή την εμφάνιση κάτι που είναι το σύστημα με την περίπτωση, με βάση την externalSystemId.
Σημειώστε ότι μπορεί να θέλετε να χρησιμοποιήσετε έναν πίνακα βάσης δεδομένων για την αποθήκευση αρχείων από εξωτερικά συστήματα, και όχι σταθερές κώδικα, ανάλογα με το πόσα θα έχετε την ευκαιρία να ασχολούνται με και εάν θα πρέπει να έχετε ένα σωρό επιπλέον πληροφορίες για το σύστημα.
Είστε σίγουροι ότι θέλετε να αποθηκεύσετε άλλες πληροφορίες από το «login»: «password»; Θα ήθελα να σας προτείνουμε να έχετε μια απαρίθμηση για την εξοικονόμηση που login συστήματος ο χρήστης προέρχεται.













