Closed mpfmorawski closed 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ą:
/auth/user?id=<USER_ID>
: zwraca dane na temat użytkownika o danym ID/api/auth/logout/
: wylogowuje aktualnie zalogowanego użytkownika - na razie poprzez usunięcie przechowywanego IDOpró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.
Proponuję zrobić PR'a (oznaczonego jako draft), abyśmy mogli sobie podyskutować o tym kodzie
Dodałem mechanizm sesji, użytkownikowi przy zalogowaniu przydzielane jest ciasteczko, które jest usuwane przy wylogowaniu.
Rzeczy do uzupełnienia:
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".