Jak integrovat Cognito do sociálního přihlášení

( Ryan Bui) (16. prosince 2020)

Ryan Bui, vývojář Javascriptů

Pokud chcete ručně integrovat sociální přihlášení pomocí aplikace Cognito pro vaši aplikaci, jsem na správném místě! Nemohl jsem integrovat sociální přihlášení s tím, co Cognito nabízí. Důvodem bylo, že se front-end nemohl snadno integrovat s uživatelskými fondy Amplify nebo Cognito kvůli jejich použití Flutteru. Flutter je v současné době příliš mladý na integraci s těmito službami.

Také jsem nechtěl vytvořit fond identit, který by front-endu přidělil dočasná pověření AWS. Abychom tento problém vyřešili, povolili jsme koncový bod / auth, který se bude programově přihlašovat / přihlašovat do Cognito. Uživatelé zase získají tokeny ověření.

Uživatelé musí posílat své vlastní sociální tokeny z Googlu, Facebooku nebo Apple. Ověření těchto tokenů bude prováděno z back-endu.

Registrace

Potřebujeme použít knihovnu „CognitoIdentityServiceProvider“ a poskytneme potřebná pověření a atributy, které chceme uživateli přiřadit (e-mail, jméno atd.). Tyto atributy musí být vyžadovány při vytváření fondu (příklad níže).

Na oplátku potřebujeme ID uživatele, které jsme právě vytvořili.

Přihlášení

Po přihlášení musíme uvést uživatelské jméno a heslo. Pokud chcete, můžete se přihlásit pouze pomocí e-mailu. pokud bude úspěšný, potřebujeme idToken, který bude použit později při autorizaci uživatelských volání na naše API.

Autorizace příchozích požadavků

Existují dva způsoby, jak konfigurovat autorizátory. Pokud to uděláme ručně, musíme otevřít konzolu AWS a zamířit do služby API Gateway a vytvořit autorizátora v našem API.

V dalším kroku uveďte jméno autorizátora a vyberte požadovaný uživatelský fond Cognito. Vyberte metodu, kde chcete použít autorizátora, a kliknutím na „Žádost o metodu“ tuto metodu propojte s autorizátorem.

Nejprve v autorizaci vyberte autorizátora. U oborů OAuth vyberte možnost „ŽÁDNÝ“ a očekávejte tokeny ID. Pokud chcete použít přístupové tokeny s rozsahy, můžete postupovat podle dokumentace v AWS .

Takže to je vše, co musíte udělat pro manuální konfigurace! Pokud to chcete automatizovat bez serveru, můžete to udělat takto:

Tady jsme jen je třeba poskytnout ARN fondu uživatelů. Nechceme tokeny ukládat do mezipaměti, a proto používáme resultTtlInSeconds: 0 . Jako zdroj identity vložte cestu k autorizační hlavičce.

Nyní musí spotřebitel tohoto API předat token ID Cognito do autorizační hlavičky.

Rychlá rekapitulace…

Cognito se dobře neintegruje s Flutterem. K registraci a přihlášení jsme použili AWS SDK. Tímto způsobem můžeme vygenerovat tokeny, které předáme zpět klientovi. Tyto tokeny se používají k ověření proti autorizátorům v bráně API.

Zvláštní poděkování za spoluautorství tohoto článku. Podívejte se na jeho výukové programy:
(Jak konfigurovat AWS) na Route 53 & (Jak proxy statický web S3)

Ryan je vývojář Javascriptů, který úzce spolupracoval s TDD a BDD. Rád hraje videohry a kytaru.

TribalScale je globální inovační firma, která pomáhá podnikům přizpůsobit se a prosperovat v digitální éře. Transformujeme týmy a procesy, vytváříme nejlepší digitální produkty ve své třídě a vytváříme rušivé startupy. Další informace o nás web . Spojte se s námi Twitter , LinkedIn & Facebook !

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *