Duk*_*gal 32 javascript amazon-web-services amazon-cognito
我正在使用适用于AWS Cognito的JavaScript SDK,并且有一些我似乎无法保存的自定义属性,无法查看原因.
问题属性是可变字符串字段,如下所示:
custom: role
custom: recruitingrole
custom: title
Run Code Online (Sandbox Code Playgroud)
同一请求中的其他自定义字段似乎更新确定.具体来说,这些似乎工作:
custom:division
custom:linkedin
custom:location
custom:bio
Run Code Online (Sandbox Code Playgroud)
当我通过SDK提交时,会返回:
{"__ type":"NotAuthorizedException","message":"客户端试图写未经授权的属性"}
以下是发送的数据,如Chrome开发人员控制台网络输出中所示:
{
"AccessToken": "",
"UserAttributes": [{
"Name": "name",
"Value": "Steve Austin"
}, {
"Name": "custom:company",
"Value": "OSI"
}, {
"Name": "custom:division",
"Value": "Bionics"
}, {
"Name": "custom:recruitingrole",
"Value": "other"
}, {
"Name": "custom:linkedin",
"Value": "http://www.linkedin.com"
}, {
"Name": "custom:location",
"Value": "Mexico City, Mexico City, Mexico"
}, {
"Name": "custom:bio",
"Value": "A man barely alive."
}]
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议我为什么不能保存这些属性?
谢谢
Duk*_*gal 67
当然,在我完成在StackOverflow上发布的那一刻,答案就变得清晰了.
问题是我没有在与用户池关联的应用程序中为这些属性设置权限.文档应该在讨论自定义属性的地方明确这个要求.
对于偶然发现此问题的任何人:
与其他建议的一样,您应该启用可写属性。但是,如果这样不起作用,请确保使用custom:前缀:
await Auth.signUp({
username: email,
password: password,
attributes: {
'custom:firstName': firstName,
'custom:lastName': lastName,
'custom:countryCode': countryCode
}
})
Run Code Online (Sandbox Code Playgroud)
小智 6
要修复此错误,您需要确保您的应用有权写入您尝试写入的自定义属性。您可以通过在 Cognito 用户池控制台中检查属性和应用程序客户端的权限来执行此操作。
以下是修复错误的步骤:
完成此操作后,您应该能够编写自定义属性而不会出现错误。
| 归档时间: |
|
| 查看次数: |
11092 次 |
| 最近记录: |