【问题标题】:authenticate user and serve only their related data对用户进行身份验证并仅提供其相关数据
【发布时间】:2019-06-29 15:11:36
【问题描述】:

我在 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
    }
  })
}

但事实证明这是无效的。我该怎么做?

【问题讨论】:

    标签: graphql graphcool


    【解决方案1】:
    query ($node_id: ID!, $user_id: ID!) {
      SomeDeviceExists(filter: {
        id: $node_id,
        users_some: {
          id: $user_id
        }
      })
    }
    

    但这确实需要在请求中提交 user_id。

    【讨论】:

      猜你喜欢
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 2018-01-22
      • 2018-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多