krótka odpowiedź
- Trzeba połączyć społecznej logowania użytkownika do standardowej tabeli użytkownika i wygenerować (JWT) token jak już robisz
- loginów społeczne zawsze zwraca identyfikator identyfikujące użytkownik na portalu społecznościowym. W tabeli zewnętrznej, przechowywać zużytą społecznej i social_id wraz z user_id was głównej tabeli użytkowników
długa odpowiedź
Zacznijmy od początku, aby mieć lepszy zobacz całą sprawę i wyjaśnij wszystkie aspekty twoich wątpliwości.
Podstawowa tabela użytkownik
Zazwyczaj masz tabelę Users skonstruowany w ten sposób (uproszczony)
- user_id
- login (e-mail)
- hasło
- jwt_token
Gdy użytkownik się zaloguje , zaktualizujesz pole jwt_token i zwrócisz je użytkownikowi, aby mógł korzystać z twoich interfejsów API.
wykonawcze loginy społeczne
Dobrym podejściem do dodawania loginów społecznych jest stworzenie nowej tabeli social_logins zorganizowany następująco (uproszczone)
- społeczny
- social_id
- USER_ID
Gdy użytkownik "zaloguje się" jako użytkownik, otrzyma listę danych sama sieć. Pamiętaj, że użytkownicy mogą zabronić pobierania prywatnego adresu e-mail (np. Z Facebooka), nawet jeśli wyraźnie o to prosisz.
Pierwszą rzeczą, którą musisz zrobić, to sprawdzić, czy społeczność zwróciła Ci adres e-mail użytkownika.
- jeśli e-mail wrócił, poszukaj użytkownik z tego adresu e-mail w swojej tabeli użytkowników i utworzyć rekord w „social_logins” stół tworząc relację z użytkownikiem przy użyciu pola user_id
- czy e-mail jest pusty , musisz utworzyć nowego użytkownika w tabeli użytkownika, tworząc "fałszywy" adres e-mail (przy użyciu standardowej metody - nie losowej), a następnie utwórz rekord społecznościowy
Aby uniknąć tworzenia podwójnych użytkowników (różne adresy e-mail) , Zawsze wolę poprosić użytkownika o potwierdzenie swojego adresu e-mail: za pomocą tego prostego pytania możesz odłożyć poprzedni czek i zmniejszyć liczbę podwójnych użytkowników. Jeśli więc login społecznościowy nie zwraca adresu e-mail, po prostu wyświetlasz puste pole, prosząc użytkowników o wypełnienie go swoim adresem e-mail, którego użyjesz do znalezienia użytkownika w tabeli użytkowników. Jeśli go masz, po prostu pokaż użytkownikowi to samo wypełnione pole i poproś go o potwierdzenie adresu e-mail lub zmień go, jeśli woli użyć innego adresu lub jeśli jest już zarejestrowany w aplikacji z innym adresem e-mail.
Społeczny login służy tylko do weryfikacji, kto jest uwierzytelniony. Nadal będziesz miał rekord użytkownika w bazie danych dla tego konkretnego użytkownika. Więc po zalogowaniu się utworzysz JWT w taki sam sposób jak zawsze. Na jakiej platformie martwisz się, że nie podasz adresu e-mail? Prawie każda usługa będzie miała jakiś identyfikator użytkownika, więc twoja tabela użytkownika może zawierać pola takie jak 'facebook_id'' twitter_id' itd. – Pitchinnate
Większość platform społecznościowych udostępnia ci adres e-mail (z wyjątkiem Twittera, który wierzę). Zakładam, że możesz wykonać przekierowanie do swojej aplikacji po udanym obiegu w obiekcie internetowym. –
@logeeks znalazłeś odpowiedź na swoje pytanie? –