Wolkenkit:授权和用户角色的 ACL

Wolkenkit: ACLs for authorization and user roles

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

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

阅读 Write model: Configuring authorization 的文档,我可以通过按照:

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。

这有可能吗?

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

长话短说:不,不幸的是现在这是不可能的,但这个功能在我们的路线图上。至少今天,我不能告诉你这个什么时候可用。

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

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

访问令牌
command.user.token

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