аутентифицировать пользователя и обслуживать только связанные с ним данные - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть схема в Graphcool с этими узлами (не уверен, что правильный термин здесь ... лист? Узел? Модель? Тип ??)

type User @model {
  auth0UserId: String @isUnique
  createdAt: DateTime!
  id: ID! @isUnique
  userIdentifier: String
  bundleIdentifier: String
  updatedAt: DateTime!
  devices: [Device!]! @relation(name: "UserOnDevice")
  tokens: [Token!]! @relation(name: "TokenOnUser")
}

type Device @model {
  id: ID! @isUnique
  deviceIdentifier: String!
  users: [User!]! @relation(name: "UserOnDevice")
  token: Token @relation(name: "DeviceOnToken")
}

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

query($deviceIdentifier: String!) {
    device(deviceIdentifier: $deviceIdentifier) {
        id
    }
}

Это должно вернуть null, если они не прошли проверку подлинности и не являются пользователем в указанном отношении.Я думал, что мне нужен запрос на разрешение, подобный этому:

query ($node_id: ID!, $user_id: ID!) {
  SomeDeviceExists(filter: {
    id: $node_id,
    users: {
      id: $user_id
    }
  })
}

Но оказывается, что это неверно.Как мне это сделать?

1 Ответ

0 голосов
/ 07 февраля 2019
query ($node_id: ID!, $user_id: ID!) {
  SomeDeviceExists(filter: {
    id: $node_id,
    users_some: {
      id: $user_id
    }
  })
}

, но для этого необходимо указать user_id в запросе.

...