Является ли пользовательский атрибут в пуле пользователей Cognito подходящим местом для хранения динамической пользовательской информации? - PullRequest
0 голосов
/ 30 мая 2018

Документация Cognito AWS гласит:

Каждый настраиваемый атрибут: невозможно удалить или изменить после добавления в пул пользователей.

От: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-custom-attributes

Я полагаю, что они ссылаются на имя пользовательского атрибута, а не на само значение.

Таким образом, значение можно изменить, например, из лямбда-функции.Допустим, мы храним очки верности для каждого пользователя на нашем сайте электронной коммерции.

Является ли пользовательский атрибут подходящим местом для хранения такого рода информации ?.Или я должен создать новую таблицу DynamoDB, связанную с UserId в пуле пользователей?

1 Ответ

0 голосов
/ 30 мая 2018

Вы, безусловно, можете хранить эту информацию в пользовательском атрибуте Cognito.Если бы вы сделали это, я бы рассмотрел две вещи:

1) Убедитесь, что клиент пула пользователей Cognito, который используется для аутентификации в пуле пользователей, не имеет разрешения на запись в этот атрибут,В противном случае мошенник может написать код для аутентификации в пуле пользователей и получить столько очков верности, сколько он пожелает.Поэтому вы можете захотеть скрыть обновление настраиваемого атрибута за службой.

2) В зависимости от того, как часто вам нужно обновлять этот атрибут, и от общей схемы использования Cognito, вы можете столкнуться с ошибками RequestLimitExceeded при использовании Cognito.API updateAttributes.Почти каждый раз, когда я пытался использовать Cognito в качестве основного хранилища данных для пользовательской информации, меня удушали.Поддержка AWS расширит ваши возможности, но ошибка происходит без предупреждения, что не очень хорошо в производственной среде.Я неизменно в конечном итоге просто по умолчанию в таблице DynamoDB.Конечно, это был мой опыт, так что YMMV

...