使用 Cognito 几个月后,用户池中的一些用户现在丢失了“email_verified”属性。我不明白它是如何丢失或如何恢复的。
症状是:
- 用户仍然可以登录
- 用户密码无法更改(例如通过JS SDK-更改密码),产生错误:“x-amzn-errormessage:无法重置用户密码,因为没有注册/验证的电子邮件或电话号码”
-
获取用户的用户属性列表用户 CLI显示该属性缺失
aws cognito-idp list-users --user-pool-id MYID-123 --query 'Users[?Username==`[email protected]`].[*]'
[
[
[
"[email protected]",
true,
"CONFIRMED",
1522127817.526,
1522127819.369,
[
{
"Name": "sub",
"Value": "123123123341241238"
},
{
"Name": "email",
"Value": "[email protected]"
}
]
]
]
]
与具有该属性的人相比
aws cognito-idp list-users --user-pool-id MYID-123 --query 'Users[?Username==`[email protected]`].[*]'
[
[
[
"[email protected]",
true,
"CONFIRMED",
1524048734.588,
1524048737.777,
[
{
"Name": "sub",
"Value": "1231231231231235"
},
{
"Name": "email_verified",
"Value": "true"
},
{
"Name": "email",
"Value": "[email protected]"
}
]
]
]
]
如果我尝试删除该属性(具有足够的权限),它会失败 - 正如人们所期望的 - 解释它是不可变的。
aws cognito-idp admin-delete-user-attributes --user-pool-id MYID-123 --username [email protected] --user-attribute-names email_verified
An error occurred (InvalidParameterException) when calling the AdminDeleteUserAttributes operation: Cannot modify the non-mutable attribute email_verified
除了归咎于 AWS Cognito 之外,我找不到此问题的原因。
解决方法/黑客/补丁是将属性添加回来,这一次,非可变检查不是问题
aws cognito-idp admin-update-user-attributes --user-pool-id MYID-123 --username [email protected] --user-attributes Name=email_verified,Value=true
现在用户再次拥有该属性,我可以重置密码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)