Sådan integreres Cognito med social login

( Ryan Bui) (16. december 2020)

af Ryan Bui, Javascript-udvikler

Hvis du manuelt vil integrere social login ved hjælp af Cognito til din app, skal du Jeg er kommet til det rigtige sted! Jeg kunne ikke integrere social login på det, som Cognito tilbyder. Dette skyldtes, at frontend ikke let kunne integreres med Amplify eller Cognito-brugerpuljer på grund af deres brug af Flutter. Flutter er i øjeblikket for ung til at integrere med disse tjenester.

Jeg ville heller ikke oprette en identitetspulje til at give midlertidige AWS-legitimationsoplysninger til frontend. For at løse dette problem aktiverede vi et / auth-slutpunkt, der registrerer / logger på Cognito programmatisk. Brugerne får igen autentiske tokens.

Brugerne skal sende deres egne sociale tokens fra Google, Facebook eller Apple. Valideringen af ​​disse tokens foretages fra back-enden.

Tilmelding

Hvad vi har brug for er at bruge biblioteket “CognitoIdentityServiceProvider” og give nødvendige legitimationsoplysninger og de attributter, som vi vil tildele brugeren (e-mail, navn osv.). Disse attributter skal kræves, når puljen oprettes (eksempel nedenfor).

Til gengæld har vi brug for det brugerID, vi lige har oprettet.

Login

Ved login skal vi angive brugernavn og adgangskode. Hvis du vil, kan du kun logge på via e-mailen. når det lykkes, har vi brug for idToken, der vil blive brugt senere, når vi godkender brugeropkald til vores API.

Autorisering af indgående anmodninger

Der er to måder at konfigurere autorisatorer på. Hvis vi gør det manuelt, skal vi åbne AWS-konsol og gå til API Gateway-tjenesten og oprette en autorisator i vores API.

Næste trin, giv autorisatoren et navn, og vælg den ønskede Cognito-brugerpulje. Vælg en metode, hvor du vil bruge en autorisator, og klik på Metodeanmodning for at linke denne metode til autorisatoren.

Vælg først autorisatoren under autorisation. For OAuth-omfang skal du vælge “INGEN” for at forvente ID-tokens. Hvis du vil bruge adgangstokener med rækkevidde, kan du følge dokumentationen i AWS .

Så det er alt hvad du skal gøre for manuel konfiguration! Hvis du vil automatisere det med serverløs, kan du gøre det her:

Her har vi bare skal give ARN for brugerpuljen. Vi ønsker ikke at cache tokens, og derfor bruger vi resultTtlInSeconds: 0 . Som en identitetskilde skal du lægge stien til autorisationsoverskriften.

Nu skal forbrugeren af ​​denne API bare videregive Cognito ID-tokenet i autorisationsoverskriften.

Et hurtigt resumé …

Cognito integreres ikke godt med Flutter. Vi brugte AWS SDK til tilmelding og login. Ved at gøre det kan vi generere tokens, som vi videregiver til klienten. Disse tokens bruges til at validere mod autorisatorer i API-gatewayen.

Speciel tak til for medforfatter til denne artikel. Se hans tutorials om:
(Sådan konfigureres AWS) på rute 53 & (Sådan proxyes et statisk S3-websted)

Ryan er en Javascript-udvikler, der har arbejdet tæt sammen med TDD og BDD. Han nyder at spille videospil og guitar.

TribalScale er et globalt innovationsfirma, der hjælper virksomheder tilpasse sig og trives i den digitale æra. Vi transformerer teams og processer, bygger digitale produkter i topklasse og skaber forstyrrende opstart. Lær mere om os på vores websted . Opret forbindelse til os på Twitter , LinkedIn & Facebook !

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *