Hvordan integrerer Cognito med sosial pålogging

( Ryan Bui) (16. desember 2020)

av Ryan Bui, Javascript-utvikler

Hvis du ønsker å integrere sosial pålogging manuelt ved hjelp av Cognito for appen din, har kommet til rett sted! Jeg kunne ikke integrere sosial pålogging med det Cognito tilbyr. Dette var fordi front-enden ikke enkelt kunne integreres med Amplify- eller Cognito-brukerbassenger på grunn av deres bruk av Flutter. Flutter er for øyeblikket for ung til å integrere seg med disse tjenestene.

Jeg ønsket heller ikke å opprette en identitetsgruppe for å gi midlertidig AWS-legitimasjon til front-enden. For å løse dette problemet aktiverte vi et / auth-endepunkt som registrerer / logger på Cognito programmatisk. Brukerne vil i sin tur få autent-tokens.

Brukerne må sende sine egne sosiale tokens fra Google, Facebook eller Apple. Valideringen av disse tokens gjøres fra bakenden.

Registrering

Det vi trenger er å bruke biblioteket «CognitoIdentityServiceProvider» og gi nødvendig legitimasjon og attributtene vi vil tildele brukeren (e-post, navn osv.). Disse attributtene må kreves når bassenget er opprettet (eksempel nedenfor).

Til gjengjeld trenger vi bruker-ID-en vi nettopp opprettet.

Pålogging

Ved pålogging må vi oppgi brukernavn og passord. Hvis du vil, kan du bare logge på via e-posten. når det lykkes, trenger vi idToken som vil bli brukt senere når du autoriserer brukeranrop til API-et vårt.

Autorisering av innkommende forespørsler

Det er to måter å konfigurere autorisatorer på. Hvis vi gjør det manuelt, må vi åpne AWS-konsollen og gå til API Gateway-tjenesten og opprette en autorisator i API-et vårt.

Neste trinn, gi et navn til autorisatoren og velg Cognito-brukergruppen du vil ha. Velg en metode der du vil bruke en autorisator, og klikk på Method Request for å koble denne metoden til autorisatoren.

Først velger du autorisator i autorisasjon. For OAuth-omfang, velg “INGEN” for å forvente ID-tokens. Hvis du vil bruke tilgangstokener med omfang, kan du følge dokumentasjonen i AWS .

Så det er alt du trenger å gjøre for manuell konfigurasjon! Hvis du vil automatisere den med serverløs, kan du gjøre det slik:

Her har vi bare trenger å oppgi ARN for brukerpoolen. Vi vil ikke cache tokens, og derfor bruker vi resultTtlInSeconds: 0 . Som en identitetskilde, legg banen til autorisasjonsoverskriften.

Nå trenger forbrukeren av dette APIen bare å sende Cognito ID-token i autorisasjonsoverskriften.

Et raskt sammendrag …

Cognito integreres ikke godt med Flutter. Vi brukte AWS SDK til å registrere og logge på. Ved å gjøre dette kan vi generere tokens som vi vil sende tilbake til klienten. Disse tokens brukes til å validere mot autorisatorer i API-gatewayen.

Spesiell takk for at du var medforfatter av denne artikkelen. Sjekk ut veiledningene hans om:
(Slik konfigurerer du AWS) på rute 53 & (Slik proxyer du et statisk S3-nettsted)

Ryan er en Javascript-utvikler som har jobbet tett med TDD og BDD. Han liker å spille videospill og gitar.

TribalScale er et globalt innovasjonsfirma som hjelper bedrifter. tilpasse seg og trives i den digitale tidsalderen. Vi forvandler team og prosesser, bygger digitale digitale produkter i beste klasse og lager forstyrrende oppstart. Lær mer om oss på vårt nettsted . Ta kontakt med oss ​​på Twitter , LinkedIn & Facebook !

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *