验证用户并仅提供他们的相关数据
authenticate user and serve only their related data
我在 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
}
}
这应该 return null
除非他们经过身份验证并且是指定关系中的用户。我在想我需要这样的权限查询:
query ($node_id: ID!, $user_id: ID!) {
SomeDeviceExists(filter: {
id: $node_id,
users: {
id: $user_id
}
})
}
但事实证明是无效的。我该怎么做?
query ($node_id: ID!, $user_id: ID!) {
SomeDeviceExists(filter: {
id: $node_id,
users_some: {
id: $user_id
}
})
}
但这确实需要在请求中提交 user_id。
我在 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
}
}
这应该 return null
除非他们经过身份验证并且是指定关系中的用户。我在想我需要这样的权限查询:
query ($node_id: ID!, $user_id: ID!) {
SomeDeviceExists(filter: {
id: $node_id,
users: {
id: $user_id
}
})
}
但事实证明是无效的。我该怎么做?
query ($node_id: ID!, $user_id: ID!) {
SomeDeviceExists(filter: {
id: $node_id,
users_some: {
id: $user_id
}
})
}
但这确实需要在请求中提交 user_id。