我有有MFA集到Cognito用户池Required与TOTP只(即没有SMS)。
我的问题是如何为用户重置MFA?例如,如果用户丢失了手机,以致他无从登录,该怎么办。
我曾尝试过重设密码,但是那只会重设密码,不会删除MFA。
在此AWS文档的底部,它说
注意 API中当前不提供删除TOTP软件令牌操作。计划在将来的版本中使用此功能。使用SetUserMFAPreference可以为单个用户禁用TOTP MFA。
因此,我尝试了SetUserMFAPreference和AdminSetUserMFAPreference,它们只返回200 OK,但实际上并未禁用MFA。我猜这是由于用户池的MFA设置为Required。
我使用JavaScript AWS SDK进行MFA设置并遇到两个问题:首先,我更新了电话号码(phone_number属性和updateUserAttributes方法).
它更新但返回空对象而不是(根据文档):
{
"CodeDeliveryDetailsList": [
{
"AttributeName": "string",
"DeliveryMedium": "string",
"Destination": "string"
}
]
}
Run Code Online (Sandbox Code Playgroud)
其次,我正在尝试向用户发送getAttributeVerificationCode带有以下有效负载的验证码:
const params = {
AccessToken: auth.accessToken,
AttributeName: 'phone_number'
}
Run Code Online (Sandbox Code Playgroud)
我正在接受
CustomMessage failed with error
Cannot read property identity of undefined
Run Code Online (Sandbox Code Playgroud)
作为错误.有任何想法吗?