Добавить авторизацию ко многим ко многим Усилить подключение к хранилищу данных GraphQL

#graphql #authorization #aws-amplify #aws-appsync

#graphql #авторизация #aws-amplify #aws-appsync

Вопрос:

Я начинаю проект с усилением хранилища данных и моделированием данных, которые имеют отношение «многие ко многим», что также требует авторизации. Мне трудно найти примеры M2M с аутентификацией, в документации их нет.

Вот пример MTM из документов хранилища данных, я хочу запретить пользователям, которые не являются редакторами, загружать сообщения. В настоящее время планируется использовать Cognito, но открыты для других решений. Как это будет достигнуто?

 
type Post @model {
  id: ID!
  title: String!
  editors: [PostEditor] @connection(keyName: "byPost", fields: ["id"])
}

type PostEditor
  @model(queries: null)
  @key(name: "byPost", fields: ["postID", "editorID"])
  @key(name: "byEditor", fields: ["editorID", "postID"]) {
  id: ID!
  postID: ID!
  editorID: ID!
  post: Post! @connection(fields: ["postID"])
  editor: User! @connection(fields: ["editorID"])
}

type User @model {
  id: ID!
  username: String!
  posts: [PostEditor] @connection(keyName: "byEditor", fields: ["id"])
}
 

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

1. У меня похожая проблема. Вы нашли какое-либо решение?

2. @Vingtoft Прошло некоторое время, но я считаю, что решения с хранилищем данных нет. Единственным вариантом было использовать API Amplify GraphQL в приложении и написать свой собственный распознаватель GraphQL на серверной части. Кроме того, это означало, что вам нужно будет иметь дело с данными, поступающими из двух API. В итоге я больше не работал над этим проектом, но я полагаю, что они перешли в Firestore. Авторизация на запись является громоздкой, но выполнима.

3. Спасибо @callmetwan. Не стесняйтесь оставлять свой комментарий в качестве ответа, тогда я назначу вам награду. Спасибо.