我正在开发一个使用 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 管理员中的某个设置?