#angular #aws-amplify
Вопрос:
У меня есть следующий код
Auth.completeNewPassword(
user,
this.profileForm.get('newPassword')?.value,
{
"phone_number": String(this.profileForm.get('phone')?.value),
"given_name": this.profileForm.get('fName')?.value,
"family_name": this.profileForm.get('lName')?.value,
"locale": this.profileForm.get('language')?.value,
"custom:role": "user" // Error when this line is added
}
)
.then(data => console.log("Changed Password! -->", data))
.catch(err => console.log("Password change failed: ", err));
Он выходит из строя на custom:role
линии, и я получаю следующую ошибку:
`Input attributes include non-writable attributes for the client XXXX`
Кроме того, в Cognito атрибут роли не отображается как обязательный атрибут. Как я могу это установить?
Ответ №1:
Хорошо, мой предыдущий ответ был неверным, поэтому я удалил его для потомков.
Очевидно, нам нужно установить разрешения на чтение и запись пользовательского атрибута, прежде чем мы сможем установить его с помощью Amplify.
Круто — где у нас есть эта настройка? НЕ на вкладке Атрибуты консоли Cognito. Он спрятан на вкладке КЛИЕНТЫ ПРИЛОЖЕНИЙ полностью внизу под переключателем под названием Set attribute read and write permissions
. Установите флажки в вашем пользовательском атрибуте, и он у вас есть.
Ужасный поток, но, по крайней мере, теперь у меня есть ответ.
Источник: https://forums.aws.amazon.com/message.jspa?messageID=882666