国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison cadre php PensezPHP Introduction détaillée à la méthode de définition des autorisations de l'équipe du projet ThinkPHP

Introduction détaillée à la méthode de définition des autorisations de l'équipe du projet ThinkPHP

Apr 11, 2023 am 09:15 AM

ThinkPHP est un excellent framework PHP, largement utilisé dans le domaine du développement web. Dans le processus de mise en ?uvre du projet, la définition des autorisations est un lien crucial. Cet article présentera en détail la méthode de définition des autorisations de l'équipe du projet ThinkPHP.

1. Comprendre les paramètres d'autorisation ThinkPHP

Le paramètre d'autorisation fait référence à l'attribution d'autorisations d'opération aux utilisateurs afin qu'ils puissent fonctionner conformément à l'étendue des autorisations. Dans le framework ThinkPHP, les paramètres d'autorisation peuvent être implémentés via RBAC (Role-Based Access Control). Le contr?le d'accès basé sur les r?les RBAC fait référence à un modèle de contr?le d'accès qui attribue des r?les aux utilisateurs et réaffecte des autorisations aux r?les. RBAC a les caractéristiques suivantes?:

  1. autorise les autorisations sur les r?les, puis attribue des r?les aux utilisateurs pour une gestion facile?;
  2. Les utilisateurs doivent uniquement avoir des r?les pour disposer de toutes les autorisations détenues par les r?les?;
  3. Le système est facile à étendre?; et maintenir, avec une bonne évolutivité?;
  4. réalise la séparation des autorisations et de la logique métier, améliorant considérablement le taux de réutilisation du code et la sécurité des accès.

Deuxième étape de configuration des autorisations basées sur RBAC

étape 1 Créer une table d'autorisations

  1. Créez une table d'autorisations dans la base de données, comprenant les champs ID, Nom, Titre et Statut
  2. Les champs ID et Nom sont des clés primaires et?; autorisations Identité?;
  3. le champ titre est le nom de l'autorisation?;
  4. le champ statut est l'état de l'autorisation, 1 signifie activé, 0 signifie désactivé.

étape 2 Créez une table de r?les

  1. Créez une table de r?les dans la base de données, comprenant les champs identifiant, nom, titre et statut
  2. les champs id et nom sont la clé primaire et l'identification du r?le est
  3. le champ titre?; le nom du r?le?;
  4. Le champ d'état est le statut du r?le, 1 signifie activé, 0 signifie désactivé.

étape 3 Créez une table utilisateur

  1. Créez une table utilisateur dans la base de données, comprenant les champs identifiant, nom d'utilisateur, mot de passe et statut
  2. le champ id est la clé primaire
  3. le nom d'utilisateur est le nom d'utilisateur?; est le mot de passe?;
  4. status représente le statut de l'utilisateur, 1 représente activé, 0 représente désactivé.
  5. étape 4 Créez une table d'association de r?les utilisateur

Créez une table d'association de r?les utilisateur dans la base de données, comprenant les champs user_id et role_id?;
  1. user_id est l'ID utilisateur?;
  2. role_id est l'ID de r?le?;
  3. étape 5 Créez une table d'association d'autorisations de r?le

Créez une table d'association d'autorisations de r?le dans la base de données, comprenant les champs role_id et Rule_id?;
  1. role_id est l'ID du r?le?;
  2. rule_id est l'ID d'autorisation?;
  3. étape 6 Implémenter le contr?le des autorisations

Dans le projet ThinkPHP, la méthode pour implémenter le contr?le des autorisations est la suivante :

Définir le contr?leur commun CommonController dans le projet, qui peut implémenter le contr?le des autorisations pour tous les utilisateurs ; La classe implémente la vérification des autorisations?;
  1. Le contr?le des autorisations est effectué dans la classe CommonController, comme indiqué ci-dessous?:
  2. public?function?_initialize(){
    ????if(!authcheck()){
    
    ????????}
    ????}
    
    public?function?authcheck(){
    ????$auth=new?Auth;
    ????if($auth->check(MODULE_NAME.'/'.CONTROLLER_NAME.'/'.ACTION_NAME,session('uid'))){
    ????????return?true;
    ????}else{
    ????????return?false;
    ????}
    }
  3. Dans la classe Auth, la logique de vérification des autorisations est implémentée, comme indiqué ci-dessous?:
class?Auth?{
????//檢查權限
????public?function?check($name,?$uid){
????????if(in_array($uid,?C('AUTH_SUPER_ADMIN'))){
????????????return?true;
????????}
????????$infos=M('user')->field('role_id')->where('id='.$uid)->find();
????????$role_id=$infos['role_id'];
????????$rules=M('access')->where('role_id='.$role_id)->select();
????????foreach($rules?as?$v){
????????????$rule_ids[]=$v['rule_id'];
????????}
????????$rules=M('rule')->where('id?in?('.implode(',',$rule_ids).')')->select();
????????foreach($rules?as?$r){
????????????$urls[]=$r['name'];
????????}
????????if(in_array($name,$urls)){
????????????return?true;
????????}else{
????????????return?false;
????????}
????}
}
    La logique implémentée par le code ci-dessus est Ajouter une vérification d’autorisation pour toutes les demandes d’action des utilisateurs. Si l'opération demandée par l'utilisateur nécessite un contr?le des autorisations, le validateur vérifie d'abord si l'utilisateur est un super administrateur. Si l'utilisateur est un super administrateur, la vérification est passée directement?; si l'utilisateur n'est pas un super administrateur, la liste des ID d'autorisation appartenant au r?le est trouvée (requête de la table d'association) en fonction de l'ID de r?le de l'utilisateur (requête de la table utilisateur), puis recherchez la liste de noms d'autorisation correspondante en fonction de la liste d'ID d'autorisation?; si le nom de l'opération demandée figure dans la liste de noms d'autorisation, la vérification est réussie, sinon la vérification de l'autorisation échoue?;
  1. 3. Résumé

Le paramètre d'autorisation est un élément indispensable du développement de sites Web. Cet article explique comment implémenter le contr?le des autorisations basé sur RBAC dans le projet ThinkPHP. Sur la base de cette idée, vous pouvez définir les autorisations d'opération correspondantes en fonction des besoins réels de votre projet.

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276