Lambda-Auslöser nach der Authentifizierung - Amazon Cognito

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Lambda-Auslöser nach der Authentifizierung

Der Trigger nach der Authentifizierung ändert den Authentifizierungsablauf für einen Benutzer nicht. Amazon Cognito ruft dieses Lambda auf, nachdem die Authentifizierung abgeschlossen ist, bevor ein Benutzer Token erhalten hat. Fügen Sie einen Trigger nach der Authentifizierung hinzu, wenn Sie eine benutzerdefinierte Nachverarbeitung von Authentifizierungsereignissen hinzufügen möchten, z. B. Protokollierung oder Anpassungen des Benutzerprofils, die bei der nächsten Anmeldung berücksichtigt werden.

Ein Lambda nach der Authentifizierung, das den Anfragetext nicht an Amazon Cognito zurücksendet, kann dennoch dazu führen, dass die Authentifizierung nicht abgeschlossen werden kann. Weitere Informationen finden Sie unter Wichtige Überlegungen.

Authentifizierungsprozess – Übersicht

Lambda-Auslöser nach der Authentifizierung – Client-Ablauf

Weitere Informationen finden Sie unter Ein Beispiel für eine Authentifizierungssitzung.

Lambda-Auslöseparameter nach der Authentifizierung

Die Anforderung, die Amazon Cognito an diese Lambda-Funktion übergibt, ist eine Kombination der folgenden Parameter und der allgemeinen Parameter, die Amazon Cognito allen Anfragen hinzufügt.

JSON
{ "request": { "userAttributes": { "string": "string", . . . }, "newDeviceUsed": boolean, "clientMetadata": { "string": "string", . . . } }, "response": {} }

Anforderungsparameter nach der Authentifizierung

newDeviceUsed

Dieses Flag zeigt an, ob Sich der Benutzer an einem neuen Gerät angemeldet hat. Amazon Cognito setzt dieses Flag nur, wenn der Wert des Benutzerpools für gespeicherte Geräte auf Always oder User Opt-In gesetzt ist.

userAttributes

Ein oder mehrere Name-Wert-Paare, die Benutzerattribute darstellen.

clientMetadata

Ein oder mehrere Schlüssel-Wert-Paare, die Sie als benutzerdefinierte Eingabe für die Lambda-Funktion bereitstellen können, die Sie für den Auslöser nach der Authentifizierung angeben. Um diese Daten an Ihre Lambda-Funktion zu übergeben, können Sie den ClientMetadata Parameter in den Aktionen AdminRespondToAuthChallengeund RespondToAuthChallengeAPI verwenden. Amazon Cognito bezieht keine Daten aus dem ClientMetadata Parameter in AdminInitiateAuthund InitiateAuthAPI-Operationen in die Anfrage ein, die es an die Post-Authentifizierungsfunktion weiterleitet.

Antwortparameter nach der Authentifizierung

Amazon Cognito erwartet keine zusätzlichen Rückgabeinformationen in der Antwort. Ihre Funktion kann API-Operationen verwenden, um Ihre Ressourcen abzufragen und zu ändern oder Ereignismetadaten in einem externen System aufzuzeichnen.

Tutorials für die Authentifizierung

Unmittelbar nachdem Amazon Cognito einen Benutzer anmeldet, aktiviert es die Lambda-Funktion nach der Authentifizierung. Sehen Sie sich diese Anmeldetutorials für JavaScript Android und iOS an.

Plattform Tutorial
JavaScript Identitäts-SDK Melden Sie Benutzer an mit JavaScript
Android Identity SDK Benutzer mit Android anmelden
iOS Identity SDK Benutzer mit iOS anmelden

Beispiel für „Nachauthentifizierung“

Diese Lambda-Beispielfunktion nach der Authentifizierung sendet Daten von einer erfolgreichen Anmeldung an CloudWatch Logs.

Node.js
const handler = async (event) => { // Send post authentication data to Amazon CloudWatch logs console.log("Authentication successful"); console.log("Trigger function =", event.triggerSource); console.log("User pool = ", event.userPoolId); console.log("App client ID = ", event.callerContext.clientId); console.log("User ID = ", event.userName); return event; }; export { handler };
Python
import os def lambda_handler(event, context): # Send post authentication data to Cloudwatch logs print ("Authentication successful") print ("Trigger function =", event['triggerSource']) print ("User pool = ", event['userPoolId']) print ("App client ID = ", event['callerContext']['clientId']) print ("User ID = ", event['userName']) # Return to Amazon Cognito return event

Amazon Cognito übergibt Ereignisinformationen an Ihre Lambda-Funktion. Die Funktion gibt dann das gleiche Ereignisobjekt mit allen Änderungen in der Antwort an Amazon Cognito zurück. Sie können in der Lambda-Konsole ein Testereignis mit den für Ihren Lambda-Auslöser relevanten Daten einrichten. Das Folgende ist ein Testereignis für dieses Codebeispiel:

JSON
{ "triggerSource": "testTrigger", "userPoolId": "testPool", "userName": "testName", "callerContext": { "clientId": "12345" }, "response": {} }