我认为,许可/授权(不是身份验证)是一个跨领域的问题。
在洋葱架构或六边形架构中,应该在哪里执行权限?所需许可的示例是:
- 过滤返回到前端的数据(UI、API 或其他)
- 验证业务操作是否可以执行
理想情况下,通过单一职责原则,执行业务操作和返回数据的代码根本不需要知道用户的权限。该功能的实现应该知道如何执行业务操作或查询存储库或域服务 - 就是这样。
实现与执行业务操作或返回数据的类相同的接口的包装器/外观是否是放置此权限的地方?或者,还有更好的方法?
此外,如果最佳实践是按活动而不是按角色进行许可,那么说许可应该由其目的只是返回数据的服务执行是否仍然有效?