Cognitoユーザープールのサインアップ前のLambdaトリガーの説明は次のとおりです。
このトリガーは、ユーザーがサインアップするために情報を送信したときに呼び出され、カスタム検証を実行してサインアップ要求を受け入れるか拒否することができます。
ラムダの特定の条件に基づいてサインアップリクエストを拒否したい。トリガーパラメータ(以下のドキュメントから再現)は、自動検証と自動確認のみをサポートしているようです。
{
"request": {
"userAttributes": {
"string": "string",
....
},
"validationData": {
"string": "string",
"string": "string",
....
}
},
"response": {
"autoConfirmUser": "boolean",
"autoVerifyPhone": "boolean",
"autoVerifyEmail": "boolean"
}
}
プレサインアップラムダトリガーの結果に基づいて、サインアップリクエストを受け入れるまたは拒否するにはどうすればよいですか?
ラムダから空のdictを返して、サインアップリクエストを拒否できます。同様に、イベント値自体を返して、サインアップ要求を受け入れます。
def lambda_handler(event, context):
if denySignUp:
return {}
else:
return event
または、 ここ に示すように、例外をスローしてサインアップを拒否することもできます。
例外メッセージは、メッセージPreSignUp failed with error {exceptionMessage}.
を含む検証エラーの形式で、Cognitoに返され、クライアントに渡されます。