如何在确认后 Lambda 触发器中检测密码更改?

wik*_*239 9 amazon-web-services amazon-cognito aws-lambda

当用户注册以向数据库输入条目时,我会触发 Lambda。确认后 Lambda 触发器触发正常,没有任何问题。现在,在实施密码更改表单后,我看到触发了相同的 Lambda。

事实上,AWS 声明它应该 - 它是“确认后”,因此当用户确认其电子邮件重新输入发送的代码时,它就会触发。我对此很满意。

如何在 Lambda 中识别触发触发器的原因是什么?当只是更改密码时,我不想进行相同的数据库调用。

(我检查了传入的请求 - 对于该问题没有任何用处)

Ped*_*ges 13

要区分PostConfirmation的来源,您必须使用"triggerSource": "string"事件对象中的属性。

触发源可以是PostConfirmation_ConfirmForgotPasswordPostConfirmation_ConfirmSignUp用于PostConfirmation

事件对象的格式如下:

{
    "version": "string",
    "triggerSource": "string",
    "region": AWSRegion,
    "userPoolId": "string",
    "userName": "string",
    "callerContext": 
        {
            "awsSdkVersion": "string",
            "clientId": "string"
        },
    "request":
        {
            "userAttributes": {
                "string": "string",
                ....
            }
        },
    "response": {}
}
Run Code Online (Sandbox Code Playgroud)

参考:https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html#cognito-user-identity-pools-working-使用 aws-lambda-trigger-sources