【发布时间】:2018-12-17 18:32:28
【问题描述】:
在用户迁移期间,我想返回“用户名或密码不正确”。作为错误消息而不是“用户不存在”
已经在google上搜索了一段时间,找不到如何在本文档中复制以下JS示例
https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-migrate-user.html
exports.handler = (event, context, callback) => {
var user;
if ( event.triggerSource == "UserMigration_Authentication" ) {
// authenticate the user with your existing user directory service
user = authenticateUser(event.userName, event.request.password);
if ( user ) {
event.response.userAttributes = {
"email": user.emailAddress,
"email_verified": "true"
};
event.response.finalUserStatus = "CONFIRMED";
event.response.messageAction = "SUPPRESS";
context.succeed(event);
}
else {
// Return error to Amazon Cognito
callback("Bad password");
}
}
else if ( event.triggerSource == "UserMigration_ForgotPassword" ) {
// Lookup the user in your existing user directory service
user = lookupUser(event.userName);
if ( user ) {
event.response.userAttributes = {
"email": user.emailAddress,
// required to enable password-reset code to be sent to user
"email_verified": "true"
};
event.response.messageAction = "SUPPRESS";
context.succeed(event);
}
else {
// Return error to Amazon Cognito
callback("Bad password");
}
}
else {
// Return error to Amazon Cognito
callback("Bad triggerSource " + event.triggerSource);
}
};
它在 nodejs 中使用callback('message'),但我不知道如何在 Python 中做到这一点。
突然想到这个问题
I can't find callback parameter in python lambda handler
尝试返回消息字符串,但得到“用户迁移期间的异常”
【问题讨论】:
-
除了使用自定义 UI / 抛出异常之外,您有没有想过这个问题?我以与您拥有的默认示例类似的方式使用节点,并且回调将错误消息记录到 cloudwatch,但仍返回通用的“用户迁移期间的异常”。我想也许我可以做 context.fail('something'); ...但这也只是记录在日志中。
-
是否有任何解决方案(用于托管 UI)
-
没有托管 UI 的解决方案。
-
@james-lin 你能把你的代码放在 Python 中吗?
-
@hernan 我不再为那家公司工作,所以我没有代码。
标签: python amazon-web-services