搜索
系统检测到您的用户名不符合规范:

Auth认证类通用认证代码

浏览:4437 发布日期:2014年12月31日 分类:系统代码 关键字: Auth authcheck
使用Auth.class.php对系统进行认证,其中频繁用到认证,在前面的基础上做了改进。
登陆成功后,将当前用户的id存入:session('uid',$curUserId);
在Config.php中配置:'NOT_AUTH_MODULE' =>'Public,Index,Test', // 默认无需认证模块
'NOT_AUTH_ACTION' =>'', // 默认无需认证操作
'SUPERADMIN_UID'=>array(1,2),
function authcheck($url,$relation='or'){

$linkArr=explode('/',$url);
if(!(count($linkArr)==2||count($linkArr)==3))return;

if(count($linkArr)==2){
$CUR_MODULE_NAME=$linkArr[0];
$CUR_ACTION_NAME=$linkArr[1];
}else{
$CUR_MODULE_NAME=$linkArr[1];
$CUR_ACTION_NAME=$linkArr[2];
}
$notAuth=in_array($CUR_MODULE_NAME, explode(",", C("NOT_AUTH_MODULE"))) || in_array($CUR_ACTION_NAME, explode(",", C("NOT_AUTH_ACTION")));

$AUTH_CONFIG=C('AUTH_CONFIG');
if(!$AUTH_CONFIG['AUTH_ON']||$notAuth)return true;
else{
if(!session("?uid"))return false;

if(in_array(session('uid'),C('SUPERADMIN_UID')))return true;
else{
import('ORG.Util.Auth');
$auth=new Auth();
if($auth->check($CUR_MODULE_NAME.'/'.$CUR_ACTION_NAME,session('uid'),$relation))return true;
else return false;
}
}
}
所有的Action均需要继承CommonAction.class.php,在Common的 _initialize()方法中使用:if(!authcheck(MODULE_NAME.'/'.ACTION_NAME))$this->error('你没有权限',U('Index/index'));在后台中对think_auth_rule数据表中在name字段存入操作的url,如:User/index,User/addRecord......

有不明白的地方有问必答,欢迎大家探讨。
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
qmit
积分:3165 等级:LV4
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /