AWS Cognito и DynamoDB, аутентификация со многими отношениями ко многим - PullRequest
0 голосов
/ 28 марта 2019

Я создаю API в Node с Serverless на AWS.

Между проектами и пользователями существует много-много взаимосвязей.

- Each User can have many projects
- Each Project can have many users

Каков наилучший способ гарантировать, что когда пользователь делает запрос, projectID, который он запрашивает, принадлежит ему?

Аутентификация обрабатывается Cognito, в DynamoDB у меня есть ключ раздела, который содержит cognitoIdentityId, а ключ сортировки - projectId.

В настоящее время я думаю, что каждый раз, когда вызывается API, я проверяю в DynamoDB ключ раздела и ключ сортировки, и если он возвращается как true, это означает, что у пользователя есть доступ к проекту, а я продолжаю выполнять другие запросы. .

Однако я не уверен, является ли это особенно эффективным или есть ли лучшие способы, которыми это может быть достигнуто?

1 Ответ

0 голосов
/ 28 марта 2019

Вы можете настроить глобальные вторичные индексы, один для запроса базы по userId, а другой - по projectId.Это позволит вам эффективно запрашивать пользователей на основе projectId или наоборот.

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html

...