【问题标题】:Wolkenkit: ACLs for authorization and user rolesWolkenkit:授权和用户角色的 ACL
【发布时间】:2018-02-09 03:19:54
【问题描述】:

我正在尝试了解如何扩展 wolkenkit 身份验证层。

假设我想要具有不同角色的用户:普通、版主和管理员。

  • 普通用户可以查看和修改自己的内容,但不允许修改其他用户的内容。

  • 版主用户可以修改所有条目,但除了自己的内容外,无权删除任何内容。

  • 管理员用户可以修改和删除所有内容。

  • 还有未经身份验证的 guest 用户可以阅读所有内容但不能修改任何内容。

阅读Write model: Configuring authorization 的文档,我可以通过编写以下内容来模拟guest/正常用例:

const initialState = {
  isAuthorized: {
    commands: {
      issue: { forAuthenticated: false, forPublic: false }
    },
    events: {
      issued: { forAuthenticated: true, forPublic: true }
    }
  }
};

根据我的要求,我需要在此对象中定义其他角色。类似{ forModerator: true, forAdmin: true }

还有Granting access from a command 可以在运行时更改权限,但我不确定这是否可行。即使是这样,那感觉也很hacky。

这有可能吗?

【问题讨论】:

    标签: authorization acl user-roles wolkenkit


    【解决方案1】:

    免责声明:我是 wolkenkit 的开发者之一。

    长话短说:不,不幸的是,目前这是不可能的,但此功能已在我们的路线图中。至少今天,我不能告诉你什么时候可以使用。

    您最好的选择是自己做。一种方法可能是使用您的身份提供者在主持人的 JWT 中包含 moderator 声明,然后在命令处理程序中适当地处理它。

    在命令处理程序中,您可以通过

    访问令牌
    command.user.token
    

    这样您就可以根据需要获得索赔。非常抱歉,目前没有更好的答案:-(

    【讨论】:

    • 您的路线图是否公开可见?我会对此非常感兴趣。
    • 还没有,但我们会改变它。一旦我们将其公开,我会通知您。
    猜你喜欢
    • 2019-05-10
    • 2011-09-29
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 2019-08-06
    • 1970-01-01
    相关资源
    最近更新 更多