#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) => {населенный пункт: «Окленд», страна: «Новая Зеландия»}