mpfmorawski / git-to-know-me

3 stars 1 forks source link

Serwis autoryzacji #10

Closed mpfmorawski closed 2 years ago

mpfmorawski commented 2 years ago

Opracowanie serwisu zarządzającego autoryzacją. W tym opracowanie bazy danych użytkowników.

Ponadto opisać zespołowi frontendu, w jaki sposób ma zostać przeprowadzenie rejestrowanie się / logowanie przez Github. W skrócie: opisać dokładnie, co się dzieje po kliknięciu "Sign in with Github", tak zwane "flow logowania".

lapankrz commented 2 years ago

Na branchu auth znajduje się PoC serwisu autoryzacji. Do jego działania potrzebne są client_id i client_secret, które dostałem przy rejestrowania naszej aplikacji na GitHubie. Oba te klucze znajdują się na naszym OneDrive'ie w pliku Technologie. Na potrzeby serwisu została zdefiniowana baza danych użytkowników, na razie z 5 kolumnami:

Istnieją 2 endpointy, zgodne z dokumentacją:

Oprócz tego istnieją 2 inne endpointy służące do przeprowadzenia flow autoryzacji użytkownika. Pierwszy z nich - /auth/github/authorize/ przekierowuje użytkownika na stronę logowania GitHuba, gdzie może on udzielić dostępu naszej aplikacji do danych na temat jego repozytoriów. Po prawidłowym logowaniu GitHub przekierowuje usera na stronę /auth/github/authorized?code=<KOD>, gdzie podany kod wymieniany jest na właściwy _accesstoken przy pomocy metody POST. Następnie przy pomocy tokena wysyłane jest zapytanie dotyczące nazwy użytkownika na GitHubie. Tak zebrane dane umożliwiają już dodanie rekordu do bazy danych, z losowo przydzielonym ID oraz loginem i tokenem powiązanym z kontem na GitHubie.

pktiuk commented 2 years ago

Proponuję zrobić PR'a (oznaczonego jako draft), abyśmy mogli sobie podyskutować o tym kodzie

lapankrz commented 2 years ago

Dodałem mechanizm sesji, użytkownikowi przy zalogowaniu przydzielane jest ciasteczko, które jest usuwane przy wylogowaniu.

mpfmorawski commented 2 years ago

Rzeczy do uzupełnienia: