Jeśli chcesz, aby umożliwić użytkownikom witryny, aby móc zalogować się z Facebook Connect, konto Google, itp, w jaki sposób zaprojektować bazę danych tak, że wszystkie one są zintegrowane?
Do czynienia z wieloma systemami logowania (Facebook Connect Konto Google i inne)
Proponuję za pomocą tabeli Konta trzymać swoje lokalne dane konta, które byłyby następnie związane z tabeli AthenticationMethods lub tabeli Poświadczenia gdzie posiadasz pokrewnych zewnętrzne dane uwierzytelniające. Pozwala to na swoją stronę i wszystkich jego złożoności być związane z kontami a proces logowania do ładnie abstrakcyjne różne formy uwierzytelniania, które warto wspierać. Biorąc pod uwagę, że każda metoda uwierzytelniania mogą mieć różne poziomy złożoności Proponuję patrząc na różnych interfejsów API i przejechać przedstawieniu im wszystko, aby znaleźć wspólne podobieństwa. Ważniejsza będzie chciał zlokalizować, gdzie są różne, tak że wy poświadczenia tabela może obsługiwać różne bity danych, które każdy może requrie API. Nie zapomnij podać OpenID!
I wykorzystać dwa pola na moim rachunku lub użytkownika lokalnego tabeli. Jeden nazywa się "externalSystemId" (TINYINT), a druga jest "ExternalId" (podwójne). Mam kilka stałych kodów, które definiują różne wartości externalSystemId, tj. EXTERNAL_SYSTEM_FACEBOOK = 1, EXTERNAL_SYSTEM_OPENID = 2, itp ExternalId oczywiście identyfikator użytkownika z tego systemu.
Podczas obsługi obiektu użytkownika w moim kodu, można łatwo określić, jaki system użytkownik jest od i załadować odpowiednie mechanizmy kod uwierzytelnienia lub coś, co jest wyświetlane w systemie właściwe, oparte na externalSystemId.
Zauważ, że możesz użyć tabeli bazy danych do przechowywania ewidencji systemów zewnętrznych, zamiast stałych kodu, w zależności od tego ile masz zamiar mieć do czynienia z, i czy trzeba kilka dodatkowych informacji o systemie.
Czy na pewno chcesz zapisać inne informacje niż „login”: „hasło”? Polecam, że masz wyliczenie oszczędności, które dla logowania do systemu użytkownik pochodzi.













