thinkphp3.23的auth详细源码解读(带实例)

thinkphp的auth权限认证对于做网站来讲是非常常用的一个功能,所以特别写一篇文章来帮助自己更好的记忆,毕竟好记性不如烂笔头!

先来看看auth所需要的三个表:

think_auth_group     //用户组表


表内的数据:


id为用户组id

title为用户组名称

status为用户组状态,0为禁用,1为启用

rules为用户组启用的权限规则id


think_auth_group_access     //用户组明细表


表内的数据:


uid对应think_user表里的用户id

group_id对应think_auth_group里的用户组id


think_auth_rule  //认证规则表


表内的数据:


id:规则id

name:规则唯一标识

title:规则中文名称

status:状态,0为禁用,1为启用

type:是否用condition进行验证,1为默认验证,0为不用condition验证

condition:验证条件,空为存在就验证,不为空则按照此内容进行验证


think_user   //用户表


表内的数据:


id为用户id

username为用户名

pass为密码

score为积分

这里由于只是示例,所以设置非常简单,密码也是演示一下,具体设置可以根据自己来,而且如果验证的条件不想放入用户表中,可以另外新建一个表,确定有用户id即可,然后配置的时候使用这个表。


上面是auth的数据表结构,虽然代码很清楚,但可能不太直观,为了更清晰的了解auth的数据表结构情况,下面详细绘制了对应的er图,有图就要更好理解些:







这样基本就能看出验证权限的过程,每个表通过同颜色的属性进行关联以此进行相应的查询,以此进行权限验证!


下面我们再来分析thinkphp的auth类的源码:

Auth类里第一部分是设置受保护的$_config,里面存储的是数组形式的默认auth配置

    //默认配置,如果用户没有在config文件中配置auth的相关配置,将会采用以下默认的配置
    protected $_config = array(
        
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值