php怎么用进行权限划分?
我以前的方法是在mysql里建立一个管理员表,通过session来判断该用户拥有什么权限,那么,在实际项目里是怎么划分的呢?因为最近在做一个app的后台,所以很注重安全文...
我以前的方法是在mysql里建立一个管理员表,通过session来判断该用户拥有什么权限,那么,在实际项目里是怎么划分的呢?因为最近在做一个app的后台,所以很注重安全文体,有示例代码最好!谢谢
展开
1个回答
展开全部
实例代码不给你提供了,还是自己去写的好。
提供一下思路:
按照我的方法,这样去写:
首先管理员表:
tb_admin #管理员表
ad_id #管理员ID
ad_username # 管理员用户名
ad_password # 管理员密码(多重MD5)或其他加密
ad_power # 管理员权限 默认null
ad_super # 超级管理员 0否 1是 默认0
超级管理员拥有所有权限,包括可以设定其他管理员的权限
你肯定是想控制管理员左侧菜单栏的权限,首先建立一个数组,(左侧菜单数组)
然后给定每一个菜单一个id 例如:
商品管理 a
新增商品 a1
商品列表 a2 (包含删改查)
ad_power 中设定某个为 a1,a2
那么该管理员就有新增和列表两个权限。
根据登录者id查询管理员表,得到权限
例如:
ad_id =》3
ad_username=》 guanli003
ad_password =》xayufdashfhdkajshfjahsk
ad_power =》 a1,a2
ad_super =》0
// $left_menu 左侧菜单
$left_menu = array(
0 =>array(
'flog' =>'a1' ,
'title' => '新增商品',
)
)
// 生成一个新的数组,只包含当前登录者的权限
foreach($left_menu as $k => $v){
// 判断管理员信息权限字段是否有该权限
if(strpos($v['flog'],$admin[ad_power])){
// 组建新数组
}
}
在前端输出该数组即可。
当然这只是我的一个思路,你可以扩充一下,引入自己的实际项目当中。包括,当power字段为空时设定默认的菜单等。
追问
你这个思路是对的,我也是这么做的,我想问的是,这个方法安全么?因为必然会用到session。
我有个思路你看对不对,就是后台登陆的时候,输入的不是表中的密码,而是mysql数据库的账号密码,通过mysql对权限进行划分。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询