使用Auth.class.php对系统进行认证,其中频繁用到认证,在前面的基础上做了改进。
登陆成功后,将当前用户的id存入:session('uid',$curUserId);
在Config.php中配置:'NOT_AUTH_MODULE' =>'Public,Index,Test', // 默认无需认证模块<br>
'NOT_AUTH_ACTION' =>'', // 默认无需认证操作<br>
'SUPERADMIN_UID'=>array(1,2),
function authcheck($url,$relation='or'){<br>
<br>
$linkArr=explode('/',$url);<br>
if(!(count($linkArr)==2||count($linkArr)==3))return;<br>
<br>
if(count($linkArr)==2){<br>
$CUR_MODULE_NAME=$linkArr[0];<br>
$CUR_ACTION_NAME=$linkArr[1];<br>
}else{<br>
$CUR_MODULE_NAME=$linkArr[1];<br>
$CUR_ACTION_NAME=$linkArr[2];<br>
} <br>
$notAuth=in_array($CUR_MODULE_NAME, explode(",", C("NOT_AUTH_MODULE"))) || in_array($CUR_ACTION_NAME, explode(",", C("NOT_AUTH_ACTION")));<br>
<br>
$AUTH_CONFIG=C('AUTH_CONFIG');<br>
if(!$AUTH_CONFIG['AUTH_ON']||$notAuth)return true;<br>
else{<br>
if(!session("?uid"))return false;<br>
<br>
if(in_array(session('uid'),C('SUPERADMIN_UID')))return true;<br>
else{<br>
import('ORG.Util.Auth');<br>
$auth=new Auth();<br>
if($auth->check($CUR_MODULE_NAME.'/'.$CUR_ACTION_NAME,session('uid'),$relation))return true;<br>
else return false;<br>
}<br>
}<br>
}
所有的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......
有不明白的地方有问必答,欢迎大家探讨。
AD:真正免费,域名+虚机+企业邮箱=0元

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
