Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Facebook Connect, Google Sign in i własny system logowania, najlepszy schemat bazy danych
micz84
post 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.
Go to the top of the page
+Quote Post
Riklaunim
post 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 winksmiley.jpg 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.)


--------------------
Biblioteki: Skrypty, CMS | Kurs PHP | Python
Go to the top of the page
+Quote Post
micz84
post 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 smile.gif na pewno się przyda, to zrobię tak jak mówisz, osobna tabela z identyfikatorem ze społeczności.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 04:15