Inf*_*ien 5 php authentication model-view-controller acl rbac
我正在使用这种结构的MVC应用程序:
Request
V
FrontController <-> Router
V
Controller <-> Model
V
View
Run Code Online (Sandbox Code Playgroud)
我还需要在此结构中放置另外两个组件:
Authentification:使用$_SESSION全局变量记录用户;RBAC:基于角色的访问控制,可以检查角色是否具有授予"ressource"(Controller方法)的访问权限.每个用户都可以拥有任意数量的角色(他们也可以没有角色).
现在,我需要将这两个组件放在我的应用程序中,我需要它们能够:
User未进行authed并且Request需要User执行authed ,则应将客户端重定向到登录页面;RBAC看到authed User没有一个角色具有授予执行方法所需的"ressource"访问权限的角色,那么仍然应该执行该Controller方法,Controller但知道该方法User没有这样做的权限(示例:A User撰写文章但没有权利发布它,因此文章将保存为草稿,并User告知Moderator必须发布它).我已经有一些想法可以找到它Authentification,RBAC但我不确定:
Authentification可以进入FrontController或者Router;RBAC可以进入FrontController或Controller.我看到有人把它RBAC放在模型中,但我不明白为什么.
我想对这个问题有一些见解.我应该在哪里放置Authentification和RBAC组件?
谢谢!
在典型的 MVC 应用程序中,身份验证检查(即“如果不是身份验证,则停止并渲染登录页面”)是在处理请求的早期完成的,而业务逻辑(即“如果用户具有此权限,则发生这种情况,否则会发生这种情况”)在“C”(控制器)内处理。
大多数框架都有一个用于测试的机制,例如您所描述的身份验证检查 - 名称各不相同,但我经常看到它称为“中间件”。
基于角色的访问控制纯粹是您的实现。
| 归档时间: |
|
| 查看次数: |
401 次 |
| 最近记录: |