在 AWS Cognito 控制台中,您只能为用户设置临时密码,并且用户必须在首次登录时更改密码。由于我们主要使用 Facebook 登录,并且仅在特殊情况下(例如管理脚本)才使用直接用户池用户,因此我们根本没有实施密码登录流程。
是否有任何公开可用的(例如 AWS 托管)页面可用于设置任何用户池中的用户的密码?或者是否有一种简单的方法可以为我们自己创建一个页面?
我找到了一种通过 AppSync 控制台执行此操作的方法,但它非常麻烦(将在答案中写出来以供参考)。
答案1
我发现使用 AppSync 控制台的麻烦方式是:
- 打开AppSync 控制台在适当的区域
- 使用“从头构建”选项创建新的 API
- 转到“设置”并将“默认授权模式”更改为“Amazon Cognito 用户池”,选择适当的用户池并保存
- 转到查询并选择使用用户池登录
- 输入用户池
cognito_app_clientWeb
App客户端ID、用户名和临时密码 - 您将收到更改密码的提示(您可以填写完全相同的临时密码)
答案2
我遇到了同样的问题并发现以下内容很有帮助:
https://github.com/aws-amplify/amplify-js/issues/24
https://dev.classmethod.jp/cloud/aws/change-cognito-user-force_change_passwore-to-confirmed/(这更有帮助,您只需按顺序操作提供的步骤即可,但页面是日文,因此请使用谷歌翻译)
唯一的方法是使用 AWS CLI。如果您经常需要这样做,建议编写脚本。