Maison >cadre php >PensezPHP >Paramétrage et implémentation des autorisations d'authentification dans Thinkphp5

Paramétrage et implémentation des autorisations d'authentification dans Thinkphp5

藏色散人
藏色散人avant
2020-07-27 13:23:414361parcourir

La colonne tutorielle suivante du framework thinkphp vous présentera le paramètre d'autorisation d'authentification et sa mise en œuvre dans Thinkphp5. J'espère qu'elle sera utile aux amis dans le besoin !

Paramétrage et implémentation des autorisations d'authentification dans Thinkphp5

1. Téléchargez la classe auth et placez-la dans le répertoire : extendauth.php

2. Exécutez l'instruction SQL dans la classe, qui peut être utilisé dans la base de données Créer 3 tables auth_group (table des groupes d'utilisateurs) auth_rule (table des règles d'autorité) auth_group_access (table des associations d'utilisateurs et de groupes d'utilisateurs)

3. similaire à la classification Infinitus) auth_rule (table de règles d'autorisation) Ajoutez 3 champs pid (identifiant parent, 0 est l'autorisation de niveau supérieur) niveau (niveau) tri (sort), comme indiqué ci-dessous

4, Créez d'abord une table d'administrateur par vous-même, telle que la table d'administration, et concevez-la normalement en ajoutant, supprimant, modifiant et vérifiant. Le champ de groupe est le groupe d'utilisateurs auquel il appartient. nom du groupe d'utilisateurs, statut (activé ou désactivé), règle (correspondant à l'identifiant de la table de règles)

6.auth_rule table de règles Ajouter, supprimer, modifier et vérifier par vous-même. ID, nom (contrôleur/méthode), titre (nom de la règle), statut (activé ou désactivé),

7. auquel appartient l'utilisateur, uid (correspondant à l'identifiant de l'utilisateur) group_id (correspondant à l'identifiant du groupe d'utilisateurs auquel appartient l'utilisateur), afin qu'ils soient associés

8. Complétez la fonction de connexion du membre, définissez la session (« id ») après une connexion réussie et stockez l'ID de membre actuellement connecté dans la session

9. , Utilisez simplement la classe d'authentification pour la vérification et utilisez

<?php
namespace app\admin\controller;
use think\Controller;
use think\Request;
use auth\Auth; //引入suth类
class Common extends Controller
{
    public function _initialize(){
      //初始化判断用户是否已经登陆
      if(!session(&#39;uname&#39;)){
          $this->error(&#39;请先登陆系统!&#39;,&#39;login/index&#39;);
        }


        //获得当前页面的控制器 / 方法
       $request=Request::instance();
       $moudle=$request->module(); //获取当前控制器名称
       $con=$request->controller(); //获取当前控制器名称
       $action=$request->action();  //获取当前方法名称
       $this->assign(array(
               &#39;con&#39;=>$con,
               &#39;action&#39;=>$action,
       ));

       $rules=$con.&#39;/&#39;.$action;  //组合  控制器/方法
       $auth=new Auth(); //实例化auth类
       $notCheck=array(&#39;Index/index&#39;);  //都可以访问的页面
       if(session(&#39;uid&#39;)!=1){  //不是超级管理员才进行权限判断
          if(!in_array($rules,$notCheck)){  // 是否在开放权限里面
              if(!$auth->check($rules,session(&#39;uid&#39;))){   // 第一个参数  控制/方法   第二个参数:当前登陆会员的id
                 $this->error(&#39;没有权限&#39;,&#39;index/index&#39;);
               };
           }
        }




       }

dans la page publique common.php pour l'affichage final


;

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer