Wątek przeniesiony 2023-04-17 19:49 z Off-Topic przez Riddle.

Jak przechowywać użytkownika zalogowanego przez Google?

0

Nie rozumiem kilku rzeczy:

W momencie gdy loguję użytkownika za pomocą Google to od Google dostaję informację na jego temat - maila, imię itd co tam chcę. Teraz jak to wygląda od strony backendu:

  • czy dodaję go wtedy do bazy danych?

Zakładam, że nie bo wtedy co z hasłem? Ale jeżeli nie, to zakładam również, że taki użytkownik następnym razem jak będzie chciał się zalogować to będzie musiał albo to znowu zrobić za pomocą Google, ale po prostu przejść normalny proces rejestracji. Dobrze to rozumiem?

  • Co jeżeli w ustawieniach po zalogowaniu mam jakąś czynność wymagającą podania hasła - na przykład zmiana maila. Rozumiem, że użytkownik zalogowany za pomocą Google nie będzie miał takiej możliwości?
3

Z tego co pamiętam powinieneś też dostać uid tego usera od google, chociaż mail w sumie też jako id może być. To sobie musisz zapamiętać w swoim lokalnym koncie usera. W takim przypadku hasło Cię nie interesuje bo nie jest Ci do niczego potrzebne.

0
anckor napisał(a):

W momencie gdy loguję użytkownika za pomocą Google to od Google dostaję informację na jego temat - maila, imię itd co tam chcę. Teraz jak to wygląda od strony backendu:

  • czy dodaję go wtedy do bazy danych?

Możesz, ale nie musisz, to już zależy od twoich wymagań.
Zazwyczaj pewnie chcesz przechowywać jakieś ustawienia profilowe, albo użytkownik chce mieć inną nazwę u ciebie w systemie, a nie tą z konta Google, więc i tak kończy się na stworzeniu reprezentacji takiego konta w twojej bazie - jak słusznie zauważyłeś bez hasła i z jakąś wskazówką, że to konto z zewnętrznego providera.

Co jeżeli w ustawieniach po zalogowaniu mam jakąś czynność wymagającą podania hasła - na przykład zmiana maila. Rozumiem, że użytkownik zalogowany za pomocą Google nie będzie miał takiej możliwości?

Tak.

Do zastanowienia co chcesz robić w sytuacji, gdy użytkownik zaloguje się innym dostawcą tożsamości z takim samym e-mailem (np. kiedyś założył konto przez Google z mailem [email protected], a teraz loguje się Facebookiem do którego ma przypisany taki sam mail). Linkujesz ze sobą takie konta, czy traktujesz jako dwa oddzielne? :]

0

Możesz, ale nie musisz, to już zależy od twoich wymagań.
Zazwyczaj pewnie chcesz przechowywać jakieś ustawienia profilowe, albo użytkownik chce mieć inną nazwę u ciebie w systemie, a nie tą z konta Google, więc i tak kończy się na stworzeniu reprezentacji takiego konta w twojej bazie - jak słusznie zauważyłeś bez hasła i z jakąś wskazówką, że to konto z zewnętrznego providera.

Hmm, ale jeżeli chcę go dodać do bazy to zakładam, że to już nie jest tabela, która przechowuje normalnie zarejestrowanych użytkowników, tylko jakaś tabela łącząca maila z ustawieniami profilowymi? I potem jak taki ktoś się wyloguje i przejdzie normalny proces rejestracji to takie dane można łatwo wyciągnąć.

0
anckor napisał(a):

Hmm, ale jeżeli chcę go dodać do bazy to zakładam, że to już nie jest tabela, która przechowuje normalnie zarejestrowanych użytkowników,

ale dlaczego? "Normalnego" usera identyfikujesz po loginie - co stoi na przeszkodzie wrzucić email jako login (jeśli dla "normalnych" userów nie przewidujesz pola email) + dodać znacznik, że loguje się przez zewnętrzny mechanizm?

0

Bo jeżeli dobrze zrozumiałem to jedyny sens wrzucania takiego użytkownika do bazy to połączenie jakichś preferencji profilu z mailem. Do tego służyłaby osobna tabela. A jeżeli przy logowaniu normalnego usera (przez loign i hasło) zaglądałbym do tabeli powiedzmy USER to po co dodawać dodatkowe rekordy do przeszukiwania takiej tabeli?

0

No ale nie potrzebujesz dla takiego usera dodatkowych danych, które będziesz miał dla usera "zwykłego", np. adres? Poza tym jak dodasz dodatkową tabele tylko dla usera logującego się kontem google to logika logowania się rozbudowuje. A co z logowaniem przez FB albo Apple? - też osobne tabele?
Btw dodanie kolumny czy nawet kilku do tabeli nie wpłynie na szybkość odczytu i wyszukiwania danych

0

Podepnę się pod wątek z moim pytaniem - czy jeżeli zrobimy logowanie tylko przy użyciu logowania FB / Google to czy możemy ominąć wymagania związane z RODO? Na ile można sobie pozwolić żeby nie musieć stawać się administratorem danych osobowych? Czy zrobienie samego powiązania email -> preferencje użytkownika już powoduje że musimy prowadzić ewidencje, rejestry, liczyć się z pozwami przy wycieku itp?

0

jeśli ktoś ma maila w postaci [email protected] czy jakikolwiek inny ale pozwalający zidentyfikować daną osobę to tak.

1 użytkowników online, w tym zalogowanych: 0, gości: 1