Wallogit.com
2017 © Pedro Peláez
The ThinkPHP5 think5-auth Package.
这个插件主要有一整套RBAC 行为日志 视图 只需要 composer安装即可和你的系统融为一体, (*1)
> composer require zx1414174/think5-auth
'think5' =>[
'style_directory' => '/static/rbac/',
//包数据表前缀,基本配置的前缀在此前缀之前加入
'database_prefix' => '',
]
可以不配置 配置以后Js css文件需要放到配置的目录里, (*2)
$auth = new Auth();
$auth->admin = $list['user_name'];
$auth->createLog('管理员<spen style=\'color: #1dd2af;\'> {name}</spen>偷偷的进入后台了,','后台登录',$list['id']);
public function _empty($name)
{
$auth = new \think5\auth\Auth();
$auth = $auth->autoload($name);
if($auth){
if(isset($auth['code'])){
return json($auth);
}elseif(isset($auth['file'])){
return $auth['file'];
}
$this->view->engine->layout(false);
return $this->fetch($auth[0],$auth[1]);
}
return abort(404,'页面不存在');
}
在模块中创建一个Auth控制器,把_empty方法复制上去,这样就可以访问以下视图, (*3)
public function __construct(\think\Request $request)
{
parent::__construct($request);
$this->request = $request;
$auth = new Auth();
$auth->noNeedCheckRules = ['index/index/index','index/index/home'];
$auth->log = true; // v1.1版本 日志开关默认true
$auth->admin = $session['name']; // v1.1版本 管理员名称
$this->uid = $session['id'];
if($this->uid){//用户登录状态
if(!$auth->auth($this->uid)){ // 权限认证
return $this->error("你没有权限访问!");
}
}else{
return $this->error("您还没有登录!",url("publics/login"));
}
}
这里在公共控制器上加入验证即可, (*4)
Auth::menuCheck($this->uid);
这个方法返回授权及非隐藏的所有菜单,这样我们后台的菜单就可以根据管理员的权限来来展示授权的目录, (*5)
tp_action_log.sql tp_auth_access.sql tp_auth_role.sql tp_auth_role_user.sql tp_auth_rule.sql tp_menu.sql