Jak zintegrować Cognito z logowaniem społecznościowym

( Ryan Bui) (16 grudnia 2020 r.)

autor: Ryan Bui, programista Javascript

Jeśli chcesz ręcznie zintegrować logowanie społecznościowe za pomocą Cognito w swojej aplikacji, musisz trafiłem we właściwe miejsce! Nie udało mi się zintegrować logowania społecznościowego z tym, co oferuje Cognito. Było tak, ponieważ front-end nie mógł łatwo zintegrować się z pulami użytkowników Amplify lub Cognito ze względu na użycie Fluttera. Flutter jest obecnie za młody, aby zintegrować się z tymi usługami.

Nie chciałem też tworzyć puli tożsamości, aby nadawać tymczasowe dane uwierzytelniające AWS front-endowi. Aby rozwiązać ten problem, włączyliśmy punkt końcowy / auth, który będzie rejestrował / logował się w Cognito w sposób programowy. Użytkownicy z kolei otrzymają tokeny autoryzacji.

Użytkownicy muszą wysłać własne tokeny społecznościowe z Google, Facebooka lub Apple. Walidacja tych tokenów zostanie przeprowadzona z zaplecza.

Rejestracja

Potrzebujemy tylko biblioteki „CognitoIdentityServiceProvider” oraz podaj niezbędne dane uwierzytelniające i atrybuty, które chcemy przypisać użytkownikowi (adres e-mail, imię i nazwisko itp.). Te atrybuty muszą być wymagane podczas tworzenia puli (przykład poniżej).

W zamian potrzebujemy właśnie utworzonego identyfikatora użytkownika.

Zaloguj się

Podczas logowania musimy podać nazwę użytkownika i hasło. Jeśli chcesz, możesz zalogować się tylko za pomocą poczty elektronicznej. jeśli się powiedzie, potrzebujemy idToken, który będzie używany później podczas autoryzacji wywołań użytkownika do naszego API.

Autoryzacja żądań przychodzących

Istnieją dwa sposoby konfiguracji autoryzatorów. Jeśli zrobimy to ręcznie, musimy otworzyć konsolę AWS i udać się do usługi API Gateway i utworzyć autoryzator w naszym API.

W następnym kroku podaj nazwę osobie autoryzującej i wybierz żądaną pulę użytkowników Cognito. Wybierz metodę, w której chcesz użyć autoryzatora i kliknij „Method Request”, aby połączyć tę metodę z autoryzatorem.

Najpierw podczas autoryzacji wybierz osobę autoryzującą. W przypadku zakresów OAuth wybierz „BRAK”, aby oczekiwać tokenów identyfikacyjnych. Jeśli chcesz używać tokenów dostępu z zakresami, możesz postępować zgodnie z dokumentacją AWS .

Więc to wszystko, co musisz zrobić w przypadku instrukcji konfiguracja! Jeśli chcesz zautomatyzować to bez użycia serwera, oto jak możesz to zrobić:

Tutaj po prostu trzeba podać ARN puli użytkowników. Nie chcemy buforować tokenów, dlatego używamy resultTtlInSeconds: 0 . Jako źródło tożsamości podaj ścieżkę do nagłówka autoryzacji.

Teraz konsument tego interfejsu API musi tylko przekazać token Cognito ID w nagłówku autoryzacji.

Krótkie podsumowanie…

Cognito nie integruje się dobrze z Flutter. Użyliśmy AWS SDK do rejestracji i logowania. W ten sposób możemy wygenerować tokeny, które przekażemy z powrotem do klienta. Te tokeny są używane do sprawdzania zgodności z osobami autoryzującymi w bramie API.

Specjalne podziękowania dla współautorów tego artykułu. Zapoznaj się z jego samouczkami na temat:
(Jak skonfigurować AWS) na Route 53 & (Jak utworzyć proxy dla statycznej witryny S3)

Ryan jest programistą JavaScript, który ściśle współpracował z TDD i BDD. Lubi grać w gry wideo i gitarę.

TribalScale to globalna firma innowacyjna, która pomaga przedsiębiorstwom dostosowywać się i rozwijać w erze cyfrowej. Przekształcamy zespoły i procesy, tworzymy najlepsze w swojej klasie produkty cyfrowe i tworzymy rewolucyjne startupy. Dowiedz się więcej o nas w naszej witrynie . Połącz się z nami na Twitterze , LinkedIn & Facebook !

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *