Ori*_*all 6 amazon-web-services amazon-cognito
我需要重置一些用户的密码,但不发送忘记密码的电子邮件。只需重置密码,以便他们下次登录时我可以显示一条消息,要求他们请求重置密码。深入研究我需要的最基本的东西:在不通知用户的情况下,我需要让他们进入某种RESET_REQUIRED状态,以便让用户在前端返回一个PasswordResetRequiredException.
我最初认为AdminSetUserPassword这可以解决这个问题,但它使用户处于一种需要通过我没有设置的用户界面更改密码的状态。我不确定是否可以采取额外的步骤——设置密码AdminSetUserPassword,然后采取其他一些步骤?
否则,我已经尝试了很多不同的事情AdminResetUserPassword。
CustomMessage_ForgotPassword,但这只会导致发送带有代码的通用消息。email_verified用户的属性更改为false(因为AWS文档指出,如果他们有经过验证的电子邮件,它将发送密码重置电子邮件),但这会使密码重置本身引发错误。有没有人有这方面的经验,或者这是一个不可能的要求?
我今天正在处理这个问题,我想让你知道我最终做了什么。
有两种方法,而且只有两种方法可以让用户进入RESET_REQUIRED状态:
AdminResetUserPassword正如您所确定的,选项 1 将通过电子邮件或短信发送代码,不,您无法轻易阻止它这样做。我向 AWS Support 提出了一个支持案例来询问这个问题,但他们也没有提出任何建议。最终,我考虑使用自定义发件人触发器,以便我可以在该触发器中决定是否发送电子邮件/短信,但设置外部电子邮件/短信发件人非常麻烦,所以我决定不再费心它。
在我们的例子中,我们将用户从一个用户池迁移到另一个用户池,因此导入方法最终运行得相当好。如果您只想重置现有用户池中的用户密码,也可以使用导入方法:
AdminGetUserAdminDeleteUser这将成功地让您的用户做出RESET_REQUIRED陈述,但缺点是:
sub将会改变所以这是一个相当糟糕的解决方案,但这就是 Cognito 为我们提供的解决方案。
| 归档时间: | 
 | 
| 查看次数: | 2790 次 | 
| 最近记录: |