Установка атрибута адреса в пользовательском пуле AWS Cognito с использованием объекта

#amazon-web-services #amazon-cognito #aws-amplify

#amazon-веб-сервисы #amazon-cognito #aws-amplify

Вопрос:

Согласно документам, атрибут ‘address’ Cognito должен соответствовать спецификации OpenID, которая допускает объект с полями:

 formatted
    Full mailing address, formatted for display or use on a mailing label. This field MAY contain multiple lines, separated by newlines. Newlines can be represented either as a carriage return/line feed pair ("rn") or as a single line feed character ("n"). 
street_address
    Full street address component, which MAY include house number, street name, Post Office Box, and multi-line extended street address information. This field MAY contain multiple lines, separated by newlines. Newlines can be represented either as a carriage return/line feed pair ("rn") or as a single line feed character ("n"). 
locality
    City or locality component. 
region
    State, province, prefecture, or region component. 
postal_code
    Zip code or postal code component. 
country
    Country name component. 
  

Возможно ли в Cognito установить эти поля? Я попытался установить адрес с помощью строкового объекта, т. Е. JSON.stringify({"locality": "Auckland", "country": "New Zealand"}) . Но когда я вернул объект claims из авторизации на шлюзе AWS API, я получил address: { formatted: '{"locality":"Auckland","country":"New Zealand"}' } . Похоже, что он просто берет любую строку, которую я отправляю, и устанавливает ее в качестве «форматированного» адреса.

Я использую API Amplify Auth для взаимодействия с cognito.

Комментарии:

1. Ты разобрался в этом? Я сам столкнулся с этой проблемой..

2. Никакого прогресса с моей стороны, я просто в итоге предположил, что он принимает только строки.

3. Да .. Здесь используются amplify и cognito SDK. Использование json.stringify({населенный пункт: «Окленд», страна: «Новая Зеландия»}), похоже, сделало свое дело. При выборке пользовательских атрибутов на клиенте я получаю ожидаемый результат. JSON.parse(user.attributes.address) => {населенный пункт: «Окленд», страна: «Новая Зеландия»}