【发布时间】:2017-01-01 23:46:44
【问题描述】:
我正在开发具有这种结构的 MVC 应用程序:
Request
V
FrontController <-> Router
V
Controller <-> Model
V
View
我需要在这个结构中放置另外两个组件:
-
Authentification:使用$_SESSION全局变量登录用户; -
RBAC:基于角色的访问控制,可以检查角色是否有权访问“资源”(Controller方法)。
每个用户都可以拥有任意数量的角色(他们也可以没有)。
现在,我需要将这两个组件放在我的应用程序中,我需要它们能够:
- 如果
User未经过身份验证,并且Request需要执行经过身份验证的User,则应将客户端重定向到登录页面; - 如果
RBAC发现经过身份验证的User没有有权访问所需的“资源” 以执行Controller的方法的角色,则@ 987654332@ 的方法仍应执行,但知道User没有这样做的权限(示例:User写了一篇文章但无权发表,所以文章保存为草稿,User被告知Moderator必须发表)。
我已经有一些想法可以找到Authentification 和RBAC,但我不确定:
-
Authentification可以加入FrontController或Router; -
RBAC可以进入FrontController或Controller。
我看到有人将RBAC 放入模型中,但我不明白为什么。
我想对这个主题有一些见解。我应该将Authentification 和RBAC 组件放在哪里?
谢谢!
【问题讨论】:
标签: php authentication model-view-controller acl rbac