gpt4 book ai didi

aws-lambda - 从 Cognito 触发器发送消息

转载 作者:行者123 更新时间:2023-12-04 15:47:18 25 4
gpt4 key购买 nike

我想限制用户从 Cognito 托管的 UI 登录。我可以看到有我们可以附加 lambda 的触发器,但是每当我更改 lambda 内的事件对象时,而不是获取我的自定义消息 User exceeded limits , 我得到 unrecognizable lambda output错误。

任何人都可以帮助我,或者有没有其他方法可以实现此功能?

现在,我得到了这个
cognito error from trigger

使用此代码:

exports.handler = (event, context, callback) => {
if (true) {
var error = new Error("Cannot signin because your signin count is 5");
// Return error to Amazon Cognito
callback(error, event);
}
// Return to Amazon Cognito
callback(null, event);
};

但是,我不想要前缀 PreAuthentication failed with error ,我只想显示我的消息。

任何帮助表示赞赏。

最佳答案

目前,无法阻止 Cognito 添加前缀,因为该表单是托管的 Web UI。

如果这是一个硬性要求,解决方法是创建您自己的登录表单并使用 aws-cognito-sdk

一旦您在下面的代码中调用 cognitoUser.authenticateUser,Pre 身份验证触发器将触发 Lambda 函数,您将需要处理错误并解析它以删除不需要的前缀。

希望这可以帮助

aws Examples: Using the JavaScript SDK

var authenticationData = {
Username : 'username',
Password : 'password',
};
var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(authenticationData);
var poolData = { UserPoolId : 'us-east-1_TcoKGbf7n',
ClientId : '4pe2usejqcdmhi0a25jp4b5sh3'
};
var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
var userData = {
Username : 'username',
Pool : userPool
};
var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
var accessToken = result.getAccessToken().getJwtToken();

/* Use the idToken for Logins Map when Federating User Pools with identity pools or when passing through an Authorization Header to an API Gateway Authorizer*/
var idToken = result.idToken.jwtToken;
},

//Your message from the Lambda will return here, you will need to parse the err to remove the unwanted prefix*
onFailure: function(err) {

alert(err);
},

});

关于aws-lambda - 从 Cognito 触发器发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55195656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com