AWS Cognito 电子邮件忘记密码代码几乎立即过期

问题描述 投票:0回答:1

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

xamarin xamarin.forms aws-sdk-net
1个回答
0
投票

这不是 Xamarin 问题,而是用户池问题。

我们必须创建一个新的用户池,因为当我们尝试验证用户的电子邮件地址时遇到相同的错误。我们只需要询问电子邮件地址,但之前的用户池也需要用户名。

因此,重新创建用户池并从列表中选择您真正需要的内容。仅此而已。

© www.soinside.com 2019 - 2024. All rights reserved.