问题
The description of a Cognito User Pools Pre Sign-up Lambda Trigger is:
This trigger is invoked when a user submits their information to sign up, allowing you to perform custom validation to accept or deny the sign up request.
I want to deny a sign-up request based on a certain condition in my Lambda. The trigger parameters (reproduced from the docs below) seem to only support auto-verification and auto-confirmation:
{
"request": {
"userAttributes": {
"string": "string",
....
},
"validationData": {
"string": "string",
"string": "string",
....
}
},
"response": {
"autoConfirmUser": "boolean",
"autoVerifyPhone": "boolean",
"autoVerifyEmail": "boolean"
}
}
How can I accept or deny a sign-up request based on the outcome of the Pre Sign-up Lambda Trigger?
回答1:
You can return a empty dict from the lambda to deny sign up request. Similarly you return the event value itself to accept the sign up request.
def lambda_handler(event, context):
if denySignUp:
return {}
else:
return event
回答2:
Alternatively, you can also deny signup by throwing an exception, as shown here.
The exception message will be passed back to Cognito, and on to the client, in the form of a validation error with the message PreSignUp failed with error {exceptionMessage}.
.
来源:https://stackoverflow.com/questions/50661422/denying-a-sign-up-request-in-cognito-user-pools