<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                # thinkphp5 auth 教程 1.表結構 ~~~ DROP TABLE IF EXISTS `think_auth_group`; CREATE TABLE `think_auth_group` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `title` char(100) NOT NULL DEFAULT '' COMMENT '用戶組中文名稱', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '狀態 : 1為正常,0為禁用', `rules` char(80) NOT NULL DEFAULT '' COMMENT '規則ID (這里填寫的是 tp_auth_rule里面的規則的ID)', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='用戶組表'; DROP TABLE IF EXISTS `think_auth_rule`; CREATE TABLE `think_auth_rule` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '規則id', `name` char(80) NOT NULL DEFAULT '' COMMENT '規則名稱,格式 為【模塊名/控制器名/方法名】或【自定義規則】,多個規則之間用,隔開即可', `title` char(20) NOT NULL DEFAULT '' COMMENT '規則中文名稱', `type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '如果type為1,condition字段就可以定義規則表達式。如定義{score}>5 and {score}<100 表示用戶的分數在5-100之間時這條規則才會通過。(默認為1)', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1為正常,0為禁用', `condition` char(100) NOT NULL DEFAULTCOMMENT '規則表達式,不為空and type字段=1 會按照條件驗證 ', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `think_auth_group_access`; CREATE TABLE `think_auth_group_access` ( `uid` mediumint(8) unsigned NOT NULL COMMENT '用戶id', `group_id` mediumint(8) unsigned NOT NULL COMMENT '組id', UNIQUE KEY `uid_group_id` (`uid`,`group_id`), KEY `uid` (`uid`), KEY `group_id` (`group_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT ='用戶組明細表'; CREATE table think_user( id mediumint(8) unsigned NOT NULL AUTO_INCREMENT, name varchar(99) , PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT ='用戶表'; ~~~ 2.介紹 ~~~ 在 tp_auth_rule里面添加一個或多個驗證規則用來驗證你的訪問權限 (Admin/Article/Add)增加文章的權限 (Admin/Article/Edit)修改文章的權限 (Admin/Article/Delete)刪除文章的權限 Ps:這3個規則可以合并成一個規則,合并成一個規則的話就是: (Admin/Article/Add,Admin/Article/Edit,Admin/Article/Delete); 也可以寫成(Article-Add-Edit-Delete)這樣的 意思是擁有文章的增刪改權限 ~~~ 3.數據錄入 ~~~ -- id為1: Admin/Article/Add 增加文章的權限 -- id為2: Admin/Article/Edit 修改文章的權限 -- id為3: Admin/Article/Delete 刪除文章的權限 -- id為4: Article-Add-Edit-Delete 擁有文章的增刪改權限 insert into think_auth_rule (name,title) select 'Admin/Article/Add','增加文章的權限'; insert into think_auth_rule (name,title) select 'Admin/Article/Edit','修改文章的權限'; insert into think_auth_rule (name,title) select 'Admin/Article/Delete','刪除文章的權限'; insert into think_auth_rule (name,title) select 'Article-Add-Edit-Delete','擁有文章的增刪改權限'; -- 信息錄入部門的 rules需要的規則為: 1,2,3 -- 信息審核部門需要的是:2,3 -- 信息管理部門需要的是 4 INSERT into think_auth_group (title,rules) select '信息錄入部門','1,2,3'; INSERT into think_auth_group (title,rules) select '信息審核部門','2'; INSERT into think_auth_group (title,rules) select '信息管理部門','4'; -- 錄入用戶信息 insert into think_user (name) select '小紅' union select '小明' union select '小張' union select '小李' -- 下面分配權限: -- 小紅和小明是信息錄入部門的: -- 那么tp_auth_access如下: -- uid為 1 的小紅 所屬認證部為 1(1也就是認證組表中的信息錄入部門,擁有增加、修改、刪除的權限) -- uid為 2 的小明 同小紅一個級別(功能一樣) -- uid為 3 的小張 所屬認證部為 2 (2也就是認證組表中的信息審核部,擁有修改、刪除的權限) -- uid為 4 的小李 所屬認證部為 3 (3也就是認證表中的信息XX部 擁有信息的 增加、修改、刪除的權限) INSERT into think_auth_group_access select 1,1 UNION select 2,1 union select 3,2 UNION select 4,3 ~~~ 4.權限認證類基本使用 ~~~ 1,是對規則進行認證,不是對節點進行認證。用戶可以把節點當作規則名稱實現對節點進行認證。 $auth=new Auth(); $auth->check('規則名稱','用戶id'); 2,可以同時對多條規則進行認證,并設置多條規則的關系(or或者and) $auth=new Auth(); $auth->check('規則1,規則2','用戶id','and') 第三個參數為and時表示,用戶需要同時具有規則1和規則2的權限。 當第三個參數為or時,表示用戶值需要具備其中一個條件即可。默認為or 3,一個用戶可以屬于多個用戶組(think_auth_group_access表 定義了用戶所屬用戶組)。我們需要設置每個用戶組擁有哪些規則(think_auth_group 定義了用戶組權限) 4,支持規則表達式。 在think_auth_rule 表中定義一條規則時,如果type為1, condition字段就可以定義規則表達式。 如定義{score}>5 and {score}<100 表示用戶的分數在5-100之間時這條規則才會通過。 ~~~ 6.auth 配置 ~~~ Ps:在使用auth之前,要先配置下auth所用的配置項: 如果你沒修改auth_rule,auth_group,auth_group_access表名稱的話,只要配置你的會員表即可。在配置項中增加以下配置項: //Auth配置 'auth' => array( // 用戶組數據表名 //'auth_group' => 'tp_group', // 用戶-用戶組關系表 //'auth_group_access' => 'tp_group_access', // 權限規則表 //'auth_rule' => 'tp_rule', // 用戶信息表 'auth_user' => 'think_user' ), ~~~ 7.開始測試 ~~~ $auth = new Auth(); /* 驗證單個條件 驗證 會員id 為 1 的 小紅是否有 增加信息的權限 check方法中的參數解釋: 參數1:Admin/Article/Add 假設我現在請求 Admin模塊下Article控制器的Add方法 參數2: 1 為當前請求的會員ID */ $check = $auth->check('Admin/Article/Add','1'); dump($check); //返回值true,代表有此權限 //檢查用戶id號等于3的,是否有此權限 $check = $auth->check('Admin/Article/Add','3'); dump($check); //返回值false,沒有此權限 /* 同時驗證多個條件 驗證 會員id 為 1 的小紅是否有增加信息,修改信息 和一個不存在的規則 的權限 參數解釋: 參數1:多條規則同時驗證 , 驗證是否擁有增加、修改、刪除的權限 參數2:當前請求的會員ID */ $check = $auth->check('Admin/Article/Add,Admin/Article/CF','1'); dump($check); // ps :CF是一個不存在的規則為什么會返回真呢? 因為check方法 第5個參數默認為 or 也就是說 多個規則中只要滿足一個條件即為真 $check = $auth->check('Admin/Article/Add,Admin/Article/CF','1','and'); dump($check); // false ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看