Facebook Connect, Google Sign in i własny system logowania, najlepszy schemat bazy danych |
Facebook Connect, Google Sign in i własny system logowania, najlepszy schemat bazy danych |
8.09.2010, 09:13:46
Post
#1
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 4.10.2004 Skąd: Niemcz Ostrzeżenie: (0%) |
Witam, do jakiegoś czasu chcę napisać system logowania, który wspierałby logowanie za pomocą Google Sign In, Facebook Connect, może jeszcze OpenId i inne w przyszłości. Mam pytanie zna ktoś jakiś dobry schemat bazy danych/tabeli do takich rozwiązań?
Myślałem nad kompozytowym kluczem głównym, w którym jedno pole byłoby typu varchar o rozmiarze 1 lub 2 i różne źródła miałyby różne kody literowe i normalnym id cyfrowym. Problem polega na tym, że jak daje autoincrement do pola dla użytkowników zarejestrowanych to dodanie np. id z facebooka o numerze 88756 powoduje, że autoincrement automatycznie ustawia się na 88757. Po za tym to rozwiązanie komplikuje całą bazę, bo wszędzie muszą być kompozytowe klucze obce odwołujące się do użytkownika. Innym pomysłem było dodanie tabeli profilu, w którym byłoby przechowywane zewnętrzne id użytkownika wraz ze źródłem, a id użytkownika systemu byłoby niezależne, lub pominięcie tabeli profilu i dodanie takiego pola bezpośrednio w tabeli użytkownika, choć to pierwsze trochę bardziej mi odpowiada, bo dzięki temu, można zrobić kilka profili do jednego użytkownika i powiązać go z różnymi metodami logowania z natywnym dla strony włącznie. |
|
|
8.09.2010, 10:27:34
Post
#2
|
|
Grupa: Zarejestrowani Postów: 640 Pomógł: 44 Dołączył: 8.02.2004 Ostrzeżenie: (0%) |
https://rpxnow.com/ użyj tego widżeta Ogólnie każde źródło społecznościowe ma swój identyfikator - czy to OpenID, czy Facebook i są to łańcuchy, nie liczby. Widżet JanRain po autoryzacji użytkownika wysyła na wskazany URL POSTem dane użytkownika / wynik autoryzacji. Logujesz wtedy użytkownika po identyfikatorze. Oczywiście każdy user ma swój login i może mieć zwykłe hasło żeby logować się też normalnie.
U mnie zrobione jest to w oddzielnej tabeli - relacja do usera, identyfikator społeczny. Reszta trzymana jest w tabeli profili użytkownika (login, imię, awatar, mail itd.) -------------------- |
|
|
8.09.2010, 10:33:41
Post
#3
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 4.10.2004 Skąd: Niemcz Ostrzeżenie: (0%) |
Dzięki za ten widżet na pewno się przyda, to zrobię tak jak mówisz, osobna tabela z identyfikatorem ze społeczności.
|
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 04:15 |