版权声明:一切都是为了学习记录,随便转载。 https://blog.csdn.net/Gjanuary/article/details/80207995
首先我们要考虑的是权限问题 这里我使用的是auth类进行权限操作 这个类可以精确到控制器或者某一个具体的方法:
废话少说直接先把这几个表放上,通过这几个表才能使用auth类
具体这些表中有哪些字段大家可以在网上查我就不过多的解释了。我单独写了一个控制器方便其他控制器进行访问的时候根据登陆人身份进行权限认证下面是验证的局部代码。
public function auth(){
$Auth = new \Think\Auth();
//需要验证的规则列表,支持逗号分隔的权限规则或索引数组
$name = MODULE_NAME . '/' . ACTION_NAME;
//当前用户id
$uid = session('userinfo') ? session('userinfo')['uid'] : $this->display("Login/login") ;
//分类
$type = MODULE_NAME;
//执行check的模式
$mode = 'url';
//'or' 表示满足任一条规则即通过验证;
//'and'则表示需满足所有规则才能通过验证
$relation = 'and';
/*
MODULE_NAME.'/'.CONTROLLER_NAME.'/'.ACTION_NAME // 精确到方法的验证
MODULE_NAME.'/'.CONTROLLER_NAME // 精确到控制器
*/
if($Auth->check(MODULE_NAME.'/'.CONTROLLER_NAME/*.'/'.ACTION_NAME*/, $uid, $type, $mode, $relation)){
return true;
}else{
return false;
}
/*if($Auth->check($name, $uid, $type, $mode, $relation)) {
// die('认证:成功');
return true;
}else{
// die('认证:失败');
return false;
}*/
}
使用方法就是在需要进行判断权限认证的控制器中 构造器引入这个方法即可
例如:
protected function _initialize(){
// 登陆验证
$object = new LoginandvalidateController();
$flag = $object->index();
if($flag){
$ss = $object->auth();
// 没有权限则显示权限认证页面
if(!$ss){
exit("请进行权限认证,联系电话:18201383130");
}else{
$this->assign("userinfo",session("userinfo"));
}
}
}
权限今天就到这里