对用户进行身份验证并仅提供其相关数据
Posted
技术标签:
【中文标题】对用户进行身份验证并仅提供其相关数据【英文标题】: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
)
但事实证明这是无效的。我该怎么做?
【问题讨论】:
【参考方案1】:query ($node_id: ID!, $user_id: ID!)
SomeDeviceExists(filter:
id: $node_id,
users_some:
id: $user_id
)
但这确实需要在请求中提交 user_id。
【讨论】:
以上是关于对用户进行身份验证并仅提供其相关数据的主要内容,如果未能解决你的问题,请参考以下文章
防止 Spring Security 通过下一个身份验证提供程序对具有 BadCredentialException 的用户进行身份验证
如何创建 SAMLAuthenticationToken 并将其发送到 SAML 身份验证提供程序
创建通过外部 API 进行身份验证的自定义身份验证提供程序?