我正在使用AWS Cognito进行用户身份验证的项目中。 为了实现“ 3个失败的登录锁定用户帐户”功能,我使用PreAuth触发器来运行处理该问题的Lambda。
在(Python)Lambda中,一旦我确定该帐户应被锁定,就会触发自定义异常,可以说{
"__type":"UserLambdaValidationException",
"message":"PreAuthentication failed with error Exceeded maximum allowed failed login attempts."
}
。这样可以防止进行身份验证(据我所知,这样做是唯一的方法)。
在我的网络应用中,触发此异常时Cognito的响应是
message
除了检查var newYork = moment.tz("2014-06-01 12:00", "America/New_York");
var losAngeles = newYork.clone().tz("America/Los_Angeles");
var london = newYork.clone().tz("Europe/London");
newYork.format(); // 2014-06-01T12:00:00-04:00
losAngeles.format(); // 2014-06-01T09:00:00-07:00
london.format(); // 2014-06-01T17:00:00+01:00
字符串中是否有异常消息外,我看不到客户端是如何确定向用户显示“您的帐户已被锁定”消息的。
在没有脆弱的字符串检查的情况下,向客户端明确指示此错误状态的正确方法是什么? 并且引发异常(使用Python时)确实是阻止身份验证流继续进行的唯一方法吗?