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)