我有一个关于 CMS 架构的问题,我还没有真正找到好的资源,所以我想把它扔给社区。
我的组织希望将我们当前的内容树结构从内部数据库转移到无头 CMS,这应该使我们的一些非技术利益相关者能够更轻松地编辑内容。目前,我们将内容存储在一个表中,并通过关系存储在另一个表中。每当用户请求内容时,我们都会创建并缓存树。
有很多解决方案几乎可以满足我们在内容存储和关系方面的要求,但我目前正在尝试思考几个问题:
原因是我们的内容树有点纠结。每个产品都有一个,并且内容可以在这些产品之间共享。即,用户 A 购买了产品 A,因此可以访问具有根项目 A 的树,但尚未购买该产品的用户 B 则不能。但用户 B 可以通过根项 B 访问树,其中可能包含产品 A 树中的一些内容。
我们在代码中对此身份验证进行了一些当前检查,但我尚未找到可以轻松定义内容/集合类型结构之外的访问控制的 CMS。像 Strapi/Keystone/Payload 这样的 CMS 确实允许控制集合/内容类型。但我担心关注点分离。我们仍然希望维护其他服务的当前 API,并且不确定在 CMS 中使用自定义身份验证是否会过多地重新发明轮子。 CMS 不应该主要关注具有一些基本 RBAC 的内容存储吗?
我可能想得太多了,但这对于现有的 CMS 解决方案来说似乎也不是太疯狂的用例。
感谢您的阅读!
我们使用 Payload CMS 已经一年多了,我们喜欢它!!!
您可以实施自己的身份验证策略:(https://payloadcms.com/docs/authentication/config#strategies)
访问控制的构建方式也很棒: (https://payloadcms.com/docs/access-control/collections)
最重要的是,您无需管理:管理 UI、数据结构和 API。只需定义您的字段和其余部分即可开箱即用! (https://payloadcms.com/docs/fields/overview)
访问控制也体现在 API 和管理 UI 中。