我正在研究一个使用AWS Cognito进行用户身份验证的Xamarin应用程序。我正在尝试实施一个忘记密码,并且MFA已设置为使用电子邮件确认代码。
但是,当我尝试输入并使用带有新密码的确认码时,总是会得到
Invalid code provided, please request a code again.
ExpiredCodeException
通过测试发现,什么都不发送或发送时更改了错误消息。如果我发送一个1字符串(显然是不正确的)或实际的确认代码,则会收到相同的错误。如果我在收到电子邮件后立即尝试使用确认码,或者等待几分钟,则会收到相同的错误消息。
代码非常简单。
public async Task<bool> ConfirmResetPasswordCodeAsync(string username, string code, string password, BasePageModel pageModel)
{
try {
await client.ConfirmForgotPasswordAsync(new ConfirmForgotPasswordRequest { Username = username, ConfirmationCode = code, ClientId = ClientId, Password = password });
return true;
} catch(Exception ex) {
// handle the exception
}
return false;
}
所以我不确定我在做什么错。我是否在AWS管理员的某处缺少设置?