確認後の Lambda トリガー - Amazon Cognito

確認後の Lambda トリガー

Amazon Cognito は、新しいユーザーの確認後にこのトリガーを呼び出し、カスタムメッセージの送信やカスタムロジックの追加の実行を可能にします。例えば、このトリガーを使用して新しいユーザーデータを収集できます。

リクエストには、確認されたユーザーの現在の属性が含まれています。

確認後の Lambda フロー

クライアントの確認サインアップフロー


                    クライアントの確認サインアップフロー

サーバーの確認サインアップフロー


                    サーバーの確認サインアップ

パスワードを忘れた場合のフローの確認


                    パスワードを忘れた場合の確認フロー

確認後の Lambda トリガーのパラメータ

これらは、一般的なパラメータに加えて、この Lambda 関数で必要となるパラメータです。

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

確認後のリクエストパラメータ

userAttributes

ユーザー属性を表す 1 つ、または複数のキー/値ペア。

clientMetadata

確認後のトリガーに指定する Lambda 関数へのカスタム入力として提供できる 1 つ、または複数のキー/値ペア。このデータは、AdminConfirmSignUpConfirmForgotPasswordConfirmSignUp、および SignUp.の各 API アクションで ClientMetadata パラメータを使用することによって Lambda 関数に渡すことができます。

確認後のレスポンスパラメータ

レスポンスで返される追加の情報は想定されていません。

ユーザー確認チュートリアル

確認後の Lambda 関数は、Amazon Cognito が新しいユーザーを確認した直後にトリガーされます。JavaScript、Android、iOS に関する以下のユーザー確認チュートリアルを参照してください。

プラットフォーム チュートリアル
JavaScript ID SDK JavaScript でのユーザーの確認
Android ID SDK Android でのユーザーの確認
iOS ID SDK iOS でのユーザーの確認

確認後の例

この Lambda 関数の例では、Amazon SES を使用してユーザーに確認 E メールメッセージを送信します。詳細については、Amazon Simple Email Service デベロッパーガイドを参照してください。

Node.js
var aws = require('aws-sdk'); var ses = new aws.SES(); exports.handler = (event, context, callback) => { console.log(event); if (event.request.userAttributes.email) { sendEmail(event.request.userAttributes.email, "Congratulations " + event.userName + ", you have been confirmed: ", function(status) { // Return to Amazon Cognito callback(null, event); }); } else { // Nothing to do, the user's email ID is unknown callback(null, event); } }; function sendEmail(to, body, completedCallback) { var eParams = { Destination: { ToAddresses: [to] }, Message: { Body: { Text: { Data: body } }, Subject: { Data: "Cognito Identity Provider registration completed" } }, // Replace source_email with your SES validated email address Source: "<source_email>" }; var email = ses.sendEmail(eParams, function(err, data){ if (err) { console.log(err); } else { console.log("===EMAIL SENT==="); } completedCallback('Email sent'); }); console.log("EMAIL CODE END"); };

Amazon Cognito は Lambda 関数にイベント情報を渡します。Lambda 関数はレスポンスで、同じイベントオブジェクトを変更と共に Amazon Cognito に返します。Lambda コンソールで、Lambda トリガーに関連するデータを使用したテストイベントをセットアップできます。以下は、このコードサンプルのテストイベントです。

JSON
{ "request": { "userAttributes": { "email": "user@example.com", "email_verified": true } }, "response": {} }