私はAWS CognitoのJavaScript SDKを使用していますが、保存できないようで、その理由がわからないカスタム属性がいくつかあります。
問題属性は、次のような可変文字列フィールドです。
custom: role
custom: recruitingrole
custom: title
同じリクエストの他のカスタムフィールドはOKに更新されるようです。具体的には、これらは動作するようです:
custom:division
custom:linkedin
custom:location
custom:bio
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."
}]
}
これらの属性に保存できない理由を誰でも提案できますか?
ありがとう
@ mvandillen からの回答を強調表示するだけです:
General settings->App clients->Show details->Set attribute read and write permissions link
この質問につまずいた人には:
他の人が提案したように、書き込み可能な属性を有効にする必要があります。それでもうまくいかない場合は、custom:
プレフィックス:
await Auth.signUp({
username: email,
password: password,
attributes: {
'custom:firstName': firstName,
'custom:lastName': lastName,
'custom:countryCode': countryCode
}
})
ASP.NET CoreでAmazon.Extensions.CognitoAuthenticationを使用して、次を追加する必要があります。
var user = _pool.GetUser(model.Email)
user.Attributes.Add("name", model.Name);
ここでname
はカスタム属性です