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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

確認後の Lambda トリガー

Amazon Cognito は、サインアップしたユーザーがユーザーアカウントを確認した後にこのトリガーを呼び出します。投稿確認 Lambda 関数では、カスタムメッセージを送信したり、カスタム API リクエストを追加したりできます。たとえば、外部システムにクエリを実行して、ユーザーに追加の属性を入力できます。Amazon Cognito は、管理者認証情報を使用して作成したユーザーではなく、ユーザープールにサインアップしたユーザーに対してのみこのトリガーを呼び出します。

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

確認後の Lambda フロー

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

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

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

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

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

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

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

Amazon Cognito がこの Lambda 関数に渡すリクエストは、以下のパラメータと Amazon Cognito がすべてのリクエストに追加する共通パラメータを組み合わせたものです。

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
// Import required AWS SDK clients and commands for Node.js. Note that this requires // the `@aws-sdk/client-ses` module to be either bundled with this code or included // as a Lambda layer. import { SES, SendEmailCommand } from "@aws-sdk/client-ses"; const ses = new SES(); const handler = async (event) => { if (event.request.userAttributes.email) { await sendTheEmail( event.request.userAttributes.email, `Congratulations ${event.userName}, you have been confirmed.` ); } return event; }; const sendTheEmail = async (to, body) => { const 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>", }; try { await ses.send(new SendEmailCommand(eParams)); } catch (err) { console.log(err); } }; export { handler };

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

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