So integrieren Sie Cognito in Social Sign-in

( Ryan Bui) (16. Dezember 2020)

von Ryan Bui, Javascript-Entwickler

Wenn Sie die soziale Anmeldung mit Cognito für Ihre App manuell integrieren möchten, müssen Sie Wir sind an der richtigen Stelle! Ich konnte Social Sign-In nicht in das Angebot von Cognito integrieren. Dies lag daran, dass das Front-End aufgrund der Verwendung von Flutter nicht einfach in Amplify- oder Cognito-Benutzerpools integriert werden konnte. Flutter ist derzeit zu jung, um in diese Dienste integriert zu werden.

Ich wollte auch keinen Identitätspool erstellen, um dem Front-End temporäre AWS-Anmeldeinformationen zu erteilen. Um dieses Problem zu lösen, haben wir einen / auth-Endpunkt aktiviert, der sich programmgesteuert bei Cognito anmeldet / anmeldet. Die Benutzer erhalten wiederum Authentifizierungstoken.

Die Benutzer müssen ihre eigenen sozialen Token von Google, Facebook oder Apple senden. Die Validierung dieser Token erfolgt über das Back-End.

Anmeldung

Wir müssen die Bibliothek „CognitoIdentityServiceProvider“ verwenden und geben Sie die erforderlichen Anmeldeinformationen und die Attribute an, die wir dem Benutzer zuweisen möchten (E-Mail, Name usw.). Diese Attribute müssen beim Erstellen des Pools erforderlich sein (Beispiel unten).

Im Gegenzug benötigen wir die soeben erstellte Benutzer-ID.

Login

Bei der Anmeldung müssen wir den Benutzernamen und das Passwort angeben. Wenn Sie möchten, können Sie sich nur mit der E-Mail anmelden. Bei Erfolg benötigen wir das idToken, das später beim Autorisieren von Benutzeraufrufen an unsere API verwendet wird.

Autorisieren eingehender Anforderungen

Es gibt zwei Möglichkeiten, Autorisierer zu konfigurieren. Wenn wir dies manuell tun, müssen wir die AWS-Konsole öffnen und zum API-Gateway-Dienst gehen und einen Autorisierer in unserer API erstellen.

Geben Sie im nächsten Schritt dem Autorisierer einen Namen und wählen Sie den gewünschten Cognito-Benutzerpool aus. Wählen Sie eine Methode aus, für die Sie einen Autorisierer verwenden möchten, und klicken Sie auf „Methodenanforderung“, um diese Methode mit dem Autorisierer zu verknüpfen.

Wählen Sie zunächst bei der Autorisierung den Autorisierer aus. Wählen Sie für OAuth-Bereiche „NONE“ aus, um ID-Token zu erwarten. Wenn Sie Zugriffstoken mit Gültigkeitsbereichen verwenden möchten, können Sie der Dokumentation in AWS folgen.

Das ist also alles, was Sie für das Handbuch tun müssen Aufbau! Wenn Sie es mit Serverless automatisieren möchten, gehen Sie wie folgt vor:

Hier sind wir nur müssen die ARN des Benutzerpools bereitstellen. Wir möchten keine Token zwischenspeichern, weshalb wir resultTtlInSeconds: 0 verwenden. Geben Sie als Identitätsquelle den Pfad zum Autorisierungsheader ein.

Jetzt muss der Benutzer dieser API nur noch das Cognito-ID-Token im Autorisierungsheader übergeben.

Eine kurze Zusammenfassung…

Cognito lässt sich nicht gut in Flutter integrieren. Wir haben das AWS SDK zum Anmelden und Anmelden verwendet. Auf diese Weise können wir Token generieren, die wir an den Client zurückgeben. Diese Token werden zur Validierung gegen Autorisierer im API-Gateway verwendet.

Besonderer Dank geht an das gemeinsame Verfassen dieses Artikels. Lesen Sie seine Tutorials zu:
(Konfigurieren von AWS) auf Route 53 & (Proxy einer statischen S3-Website)

Ryan ist ein Javascript-Entwickler, der eng mit TDD und BDD zusammengearbeitet hat. Er spielt gerne Videospiele und Gitarre.

TribalScale ist ein globales Innovationsunternehmen, das Unternehmen hilft im digitalen Zeitalter anpassen und gedeihen. Wir transformieren Teams und Prozesse, bauen erstklassige digitale Produkte und schaffen disruptive Startups. Erfahren Sie mehr über uns auf unserer Website . Verbinden Sie sich mit uns über Twitter , LinkedIn & Facebook !

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.