PHP code example of chenmingwei / think-auth
1. Go to this page and download the library: Download chenmingwei/think-auth library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
chenmingwei / think-auth example snippets
// auth配置,在config目录下新建一个 auth.php 配置文件
config = [
'auth_on' => 1, // 权限开关
'auth_type' => 2, // 认证方式,1为实时认证;2为登录认证。
'auth_group' => 'auth_group', // 用户组数据表名
'auth_group_access' => 'auth_group_access', // 用户-用户组关系表
'auth_group_rule' => 'auth_group_rule', // 用户组-权限规则关系表
'auth_rule' => 'auth_rule', // 权限规则表
'auth_user' => 'user', // 用户信息表
// 不需要验证权限的
'public' => [
'index/index/index',
'index/index/login'
]
];
namespace app\common\controller;
use think\auth\Auth;
class Base extends Common
{
protected $auth;
protected function initialize()
{
parent::initialize();
$module = request()->module();
$controller = request()->controller();
$action = request()->action();
$rule = strtolower($module) . '/' . strtolower($controller) . '/' . strtolower($action);
// 登陆验证 自行处理
$uid = session('userinfo.id');
if(!$uid){
$this->redirect('admin/login/index');
}
// 权限验证
$this->auth = new Auth();
if(!$this->auth->check($uid, $rule)){
$this->error('权限不足');
}
}
}
$auth = new Auth();
/**
* 添加一个权限组
* @param $title 组名称|必填
* @param int $status 状态
*/
$auth->addGroups($title, $status);
/**
* 改变权限组状态
* @param $group_id 用户组ID|必填
* @param int $status 状态|0:禁用 1:启用
*/
$auth->changeGroupsStatus($group_id,$status);
/**
* 为组设置权限
* @param $group_id 用户组ID
* @param $rules 权限节点ID , int | array
*/
$auth->setAuthOfGroup($group_id, $rules);
/**
* 删除用户组的权限
* @param $groups_id 用户组ID 支持数组
* @param $rules 规格ID 支持数组
*/
$auth->delRulesByGroup($groups_id, $rules);
/**
* 按用户查询用户组
* @param $uid
*/
$auth->getGroupsByUid($uid);
/**
* 按用户组查询用户
* @param $uid
*/
$auth->getUsersByGroup($group_id);
/**
* 为用户添加用户组
* @param $uid
* @param $groups_id int|array
*/
$auth->addGroupsByUid($uid, $groups_id);
/**
* 为用户组中添加用户
* @param $group_id
* @param $uids int|array
*/
$auth->addUsersByGroup($group_id, $uids);
/**
* 删除用户和用户组的关系
* @param $uid 用户ID 支持数组
* @param $groups_id 用户组ID 支持数组
*/
$auth->delUserGroupsRelation($uids, $groups_id);
/**
* 按group_id是否有权限,返回所有权限节点
* @param $group_id
*返回数据结构
[
[
"rid" => NULL
"group_id" => NULL(为空说明该组对此节点没有权限,有权限将会显示相应的group_id值)
"id" => 节点ID
"name" => 节点名
"title" => 标题
"type" => 类型 0普通节点 1菜单节点
"pid" => 父级ID
"status" => 状态 是否禁用
"icon' => 图标
"child" => 子节点
],
...
]
*/
$auth->getAuthRulesByGroup($group_id);
/**
* 按用户查询所有该用户有权限的菜单节点
* @param $uid 用户ID
* @return array
*/
$auth->getAuthMenuByUser($uid)