AWS Cognito:重置过期的临时密码

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

我们正在使用 AWS Cognito。我们使用

AdminCreateUser
API 添加用户,他们会收到临时密码。不幸的是,其中一些人在 7 天内(临时密码过期期限)没有登录,现在当他们尝试使用过期的临时密码登录时,AWS Cognito 返回此错误:

用户帐户已过期,必须由管理员重置。

对于这种情况,我们从用户池中删除该用户并重新创建。但这很耗时。

根据 documentation,我们可以使用相同的

AdminCreateUser
API,仅使用用户名和
MessageAction = RESEND
,将邀请消息重新发送给已存在的用户,并重置用户帐户的过期限制。

但是我们不想发送默认电子邮件,我们想发送我们自己的电子邮件,因为我们已经设置了

MessageAction = SUPPRESS
。根据文档,
MessageAction
只能有一个值
RESEND or SUPPRESS

有什么方法我们可以重置过期限制,或者如果我们使用上述方法,我们应该能够从我们的一端发送电子邮件而不是使用默认电子邮件。

amazon-web-services amazon-cognito
1个回答
0
投票

我通过使用 AWS 的 .NET 客户端向

AdminCreateUser
API 发送以下请求解决了该问题:

var adminCreateUserRequest = new AdminCreateUserRequest
{
    UserPoolId = _poolId,
    MessageAction = MessageActionType.RESEND,
    Username = request.Username,
    TemporaryPassword = request.TemporaryPassword,
    DesiredDeliveryMediums = new List<string> { "EMAIL" }
};

await _authProvider.AdminCreateUserAsync(adminCreateUserRequest);

在上面的代码中,

_authProvider
AmazonCognitoIdentityProviderClient
的一个实例。
TemporaryPassword
表示要设置的新临时密码,
DesiredDeliveryMediums
指定“EMAIL”作为传递方式,因为创建用户池时禁用了电子邮件通知。

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