首页 > 解决方案 > 在 GRANDstack 中设置用户级别授权

问题描述

我使用 repo graphql-auth-directives授权创建了一个基于 GRANDstack 的问答平台(类似于 stackoverflow)。这允许我们检查身份验证、角色级别或范围级别的授权。

在这个平台上,用户可以回答问题并可能将答案保存为草稿。只要没有发布答案,用户自己就应该看到它,但其他人不会看到它。然而,其他用户应该看到所有其他最终的答案。

如何创建这种类型的用户级别授权?结果应提供以下内容:

假设一个问题 Q 的 id someid。目前已确定答案 A1 和 A2。如果某个随机用户 U1 执行查询:

query: {
  Question(id:someid){
    answers {
      Answer{  
        id,
        text,
        is_draft
      }
    }
  }
}

他/她应该将 A1 和 A2 视为答案。但是,如果另一位用户 U2 目前在草稿中对此问题有一个答案,例如 A3。然后他/她应该检索 A1、A2 和 A3。

有一些通用的解决方案吗?如果不是,那么建议的编程此功能的方法是什么?

标签: authenticationneo4jgraphqlauthorizationgrandstack

解决方案


为了解决上述问题,我调整了graphql-auth-directives包并创建了自己的包,请参见此处。这允许您创建我所说的“条件权限”。为了更好地理解实现,我建议你看一下我写的关于它的Medium文章。


推荐阅读