简体   繁体   中英

How to reject sign-up trigger with GoLang

I've successfully created a lambda function using Go for the pre sign-up trigger of AWS Cognito. My problem is that I'm not being able to deny/reject the user if a custom field is not valid (based on custom logic).

I'm returning an error as described in AWS Cognito trigger's guide:

return event, fmt.Errorf("Invalid value for field 'custom:myField'")

also I've tried this options:

  • returning an empty event (nil is not allowed for the event):

     var emptyEvent events.CognitoEventUserPoolsPreSignup return emptyEvent, fmt.Errorf("Invalid value for field 'custom:myField'") 
  • changing ValidationData in the original event:

     event.Request.ValidationData = map[string]string{"custom:myField": "Invalid value for field 'custom:myField."} return event, fmt.Errorf("Invalid value for field 'custom:myField'") 
  • changing UserAttributes in the original event

     event.Request.UserAttributes["email"] = "" return event, fmt.Errorf("Invalid value for field 'custom:myField'") 

All those methods are failing, the user is always created in the User Pool.

What should be the correct way to reject the sign-up request using GoLang lambda function?

Looks like something changed on AWS Cognito Lambda triggers, since today I tried the following source code and it worked as expected:

func handler(event events.CognitoEventUserPoolsPreSignup) (events.CognitoEventUserPoolsPreSignup, error) {
    fmt.Println(event)
    return event, fmt.Errorf("TESTING LAMBDA ERRORS WITH GOLANG")
}

Also, the previous source code that was not working as expected when I posted this question is currently working (with no changes on my side).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM