tp5 auth.php,Thinkphp5中auth权限设置以及实现的方法

Thinkphp5中auth权限设置以及实现的方法

发布时间:2021-01-16 11:23:11

来源:亿速云

阅读:90

作者:小新

这篇文章主要介绍Thinkphp5中auth权限设置以及实现的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1.将auth类下载好 放置目录: extend\auth\auth.php

2.将类中的SQL语句执行,可以在数据库中创建3张表 auth_group(用户组表)           auth_rule(权限规则表)           auth_group_access(用户与用户组关联表)

3.我想给规则 添加一个级别关系(类似于无限极分类)   auth_rule(权限规则表) 中添加3个字段  pid(父级id ,0为顶级权限)   level(级别)    sort(排序),如下图

d65ca01b8f0c149efe867fcd2d11cdbd.png

4,首先 自己创建管理员表,比如叫admin表,增删改查 自己去正常设计,group字段为所属用户组

5ee8c7cee7cc6894959d81a1200d2e29.png

5.auth_group用户组的 增删改查 也自己去制作一下,id,用户组名称,状态(开启,或者关闭),规则(所对应的是规则表的id)

5292fbc7e8a9f6335b185033131de3f1.png

6.auth_rule规则表 增删改查 也自己去制作一下,id,name(控制器/方法),title(规则名称 )  status状态(开启,或者关闭),

90ccda517f4bbea88dc4b6b7d47acdb9.png

7. 在添加用户的时候 给用户选择 所属用户组, uid(对应的是用户id)   group_id(对应的是用户所属用户组的id),这样就关联起来了

b0e06d550909a9d021025a80bb795b2b.png

8.把会员登陆功能做好,登陆成功设置session('id'),将当前登陆会员ID存在session中

9.最关键的的一步,就是使用auth类进行验证,在common.php这个公共页面中 使用<?php

namespace app\admin\controller;

use think\Controller;

use think\Request;

use auth\Auth; //引入suth类

class Common extends Controller

{

public function _initialize(){

//初始化判断用户是否已经登陆

if(!session('uname')){

$this->error('请先登陆系统!','login/index');

}

//获得当前页面的控制器 / 方法

$request=Request::instance();

$moudle=$request->module(); //获取当前控制器名称

$con=$request->controller(); //获取当前控制器名称

$action=$request->action();  //获取当前方法名称

$this->assign(array(

'con'=>$con,

'action'=>$action,

));

$rules=$con.'/'.$action;  //组合  控制器/方法

$auth=new Auth(); //实例化auth类

$notCheck=array('Index/index');  //都可以访问的页面

if(session('uid')!=1){  //不是超级管理员才进行权限判断

if(!in_array($rules,$notCheck)){  // 是否在开放权限里面

if(!$auth->check($rules,session('uid'))){   // 第一个参数  控制/方法   第二个参数:当前登陆会员的id

$this->error('没有权限','index/index');

};

}

}

}

最终展示;

045659addf0936023b1179c4a7931b01.png

70d745c1d2e888e5a133c906b1a47a5c.png

6d6070101182ac8026dffddfb3213895.png

以上是“Thinkphp5中auth权限设置以及实现的方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值