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

認証後の Lambda トリガー

Amazon Cognito は、ユーザーのサインイン後にこのトリガーを呼び出し、認証後にカスタムロジックを追加できるようにします。

認証後の Lambda フロー

クライアントの認証フロー


                    認証後の Lambda トリガー - クライアントフロー

サーバー認証フロー


                    認証後の Lambda トリガー - サーバーフロー

詳細については、「Userプール認証フロー」を参照してください。

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

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

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

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

newDeviceUsed

このフラグは、ユーザーが新しいデバイスにサインインしているかどうかを示します。このフラグは、ユーザープールの記憶済みデバイス値が Always または User Opt-In に設定されている場合にのみ設定されます。

userAttributes

ユーザー属性を表す 1 つ以上の名前 - 値ペア。

clientMetadata

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

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

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

認証チュートリアル

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

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

認証後の例

この認証後の Lambda 関数のサンプルは、正常に行われたサインインからのデータをCloudWatch Logs に送信します。

Node.js
exports.handler = (event, context, callback) => { // Send post authentication data to 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 to Amazon Cognito callback(null, event); };
Python
from __future__ import print_function 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 は Lambda 関数にイベント情報を渡します。Lambda 関数はレスポンスで、同じイベントオブジェクトを変更と共に Amazon Cognito に返します。Lambda コンソールで、Lambda トリガーに関連するデータを使用したテストイベントをセットアップできます。以下は、このコードサンプルのテストイベントです。

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