我一直在思考我即将开始开发的网络应用程序,并想知道我的常用方法是否可以改进.
我在去年的一些应用程序,我创建的角色(如表(见下文)CREATE POST
,EDIT POST
等),每个都应用了一个位域,所以我可以简单地分配用户的某些权利的登记和检查他们以后(如$user->hasRight(CREATE_POST)
).
我想知道是否有更好的方法.当权利没有明确地链接到用户时,我肯定会感到困惑(我可以有一个表,其中每个权利都是一个布尔列,但这听起来只是一个很小的改进) - 如果我改变一些,会发生什么?
我不打算使用标准库(应用程序本身对我来说是一种学习体验:使用postgresql,git等)虽然我很乐意从他们那里获取灵感来构建我自己的 - 所以如果有什么特别的你认为我应该看看请说出来:)
您可以查看Spring Security(以前称为Acegi)的文档,该文档是一种广泛使用的Java ACL框架。
该文档详尽无遗,还描述了Bot身份验证和授权设计中的各种注意事项。即使不使用Java,也值得一读。
您可以查看索引页面以概述和印象Acegi所做(和不做)。您也可以直接跳到授权概念,甚至跳到数据库模式。