Auth类使用注意,请教

浏览:4383 发布日期:2014/02/22 分类:求助交流
1、所有模块都需要权限验证,节点数据是直接读取的所有Controller的所有Public Action,但是相互关联的Controller之间的调用也会涉及到验证问题,多数时候调用的是protected方法,既没必要进行验证,而且给角色分配权限的时候也特别麻烦,需要记清每一个模块间的调用关系,这个,程序猿真的做不到……
想到的一个解决方法是,在_initialize方法中检查action的访问级别,若不为public则直接返回true;//$method =   new \ReflectionMethod($this, ACTION_NAME);
//if(!$method->isPublic())return true;
但是这样会导致无限递归……不知道各位有什么好的解决办法

2、通常在做权限验证时,一般会新建一个公共父类baseController,用来进行统一的权限验证,但是这样_initialize方法会至少执行两遍,每次都要连接数据库或者访问巨大的session,如何只让子类进行权限验证呢?
之前尝试过解决方案,对单级继承还能用,两级继承就无能为力了
http://www.thinkphp.cn/topic/10787.html

3、目前官方的的Auth类没有使用缓存,一个小型的企业项目掰掰指头至少一千权限节点,每个用户都存到session中,一则浪费,二则session过大时php会存到本地文件,影响速度。
建议:按分组缓存。

有什么好的解决思路和方案还希望大家分享一下
最佳答案
评论( 相关
后面还有条评论,点击查看>>