Cognito/Lambda:在 PreSignUp_SignUp 中验证
Cognito/Lambda: validation in PreSignUp_SignUp
我正在使用 Cognito 在 Amplify 上构建一个非常小的应用程序。在注册表单中,我有一个名为 "activation_key" 的额外属性,它类似于测试版令牌。我想验证这个密钥,如果它是错误的,我需要 return 一个错误。
在查看文档时,对于名为 "Pre Sign-up Lambda Trigger" 的操作,我看到了描述 "Custom validation to accept or deny the sign-up request"。听起来很完美。但此触发器的实际文档 - https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-sign-up.html,在撰写本文时不包含此类验证的任何示例。
我发现当我从 lambda 回调(新错误('custom message'))return 时,它几乎可以满足我的需要。它 return 是一条消息 "PreSignUp failed with error ${myCustomErrorMessage}"。这让我觉得也许有更好的方法,而我只是做错了什么。
从 Lambda Cognito PreSignUp_SignUp 挂钩 returning 验证错误的正确方法是什么?
可能的解决方法:
停止使用 Amplify UI 元素 (ReactJS) 并以自定义方式进行,拦截错误,并在显示错误之前删除字符串 "PreSignUp failed with error"
允许任何人注册,但要求 activation_key 作为下一步,在 Cognito 流程之外
使用 PreSignUp
Lambda 触发器,这个用例听起来不太合理,我会声明在 Cognito 流程之外处理 activation_key 会是更好的选择。
实现此用例的另一种方法(推荐方法)是使用 CUSTOM_AUTH
身份验证流程。
在 CUSTOM_AUTH
流程的 DefineAuthChallenge
Lambda 触发器中,您可以设置 Cognito 身份验证流程期间所需的参数(密码、OTP、CAPTCHA 等)。为了更好地理解 CUSTOM_AUTH
流程,我建议您阅读此 documentation。
我正在使用 Cognito 在 Amplify 上构建一个非常小的应用程序。在注册表单中,我有一个名为 "activation_key" 的额外属性,它类似于测试版令牌。我想验证这个密钥,如果它是错误的,我需要 return 一个错误。
在查看文档时,对于名为 "Pre Sign-up Lambda Trigger" 的操作,我看到了描述 "Custom validation to accept or deny the sign-up request"。听起来很完美。但此触发器的实际文档 - https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-sign-up.html,在撰写本文时不包含此类验证的任何示例。
我发现当我从 lambda 回调(新错误('custom message'))return 时,它几乎可以满足我的需要。它 return 是一条消息 "PreSignUp failed with error ${myCustomErrorMessage}"。这让我觉得也许有更好的方法,而我只是做错了什么。
从 Lambda Cognito PreSignUp_SignUp 挂钩 returning 验证错误的正确方法是什么?
可能的解决方法:
停止使用 Amplify UI 元素 (ReactJS) 并以自定义方式进行,拦截错误,并在显示错误之前删除字符串 "PreSignUp failed with error"
允许任何人注册,但要求 activation_key 作为下一步,在 Cognito 流程之外
使用 PreSignUp
Lambda 触发器,这个用例听起来不太合理,我会声明在 Cognito 流程之外处理 activation_key 会是更好的选择。
实现此用例的另一种方法(推荐方法)是使用 CUSTOM_AUTH
身份验证流程。
在 CUSTOM_AUTH
流程的 DefineAuthChallenge
Lambda 触发器中,您可以设置 Cognito 身份验证流程期间所需的参数(密码、OTP、CAPTCHA 等)。为了更好地理解 CUSTOM_AUTH
流程,我建议您阅读此 documentation。