使用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
使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









