Comment implémenter rbac dans yii2
Contrôle d'accès basé sur les rôles RBAC (Role-Based Access Control).
1. Idée de base : introduire le concept de rôles entre les utilisateurs et les droits d'accès, connecter les utilisateurs et les rôles et contrôler l'accès des utilisateurs aux ressources du système via l'autorisation des rôles par rapport au contrôle d'accès traditionnel. , l'introduction de rôles simplifie grandement la gestion des autorisations. (Apprentissage recommandé :
Implémentation de rbac dans Yii2
1 Yii2 implémente un RBAC en couches général, et le modèle qu'il suit est également le modèle NIST RBAC. 2. La notion de règle est ajoutée dans yii2. Qu'est-ce qu'une règle ? Par exemple : pour le système d'articles, nous avons des administrateurs et des utilisateurs ordinaires, qui permettent aux administrateurs d'effectuer toutes opérations sur les articles, mais seuls les utilisateurs ordinaires sont autorisés à créer des articles et à modifier les articles qu'ils créent, c'est-à-dire Les utilisateurs ordinaires ont la permission de modifier les articles, mais la restriction d'Extra est qu'ils ne peuvent modifier que leurs propres articles. Cette vérification d'Extra est responsable des règles.L'implémentation de gestion des autorisations de 3.yii2 prend en charge deux supports : file et db. Le cœur de l'implémentation basée sur la base de données est constitué de quatre tables :
1) Rôles ou autorisations de stockage. Table : auth_item (type : 1 représente le rôle ; 2 représente l'autorisation)CREATE TABLE `auth_item` ( `name` varchar(64) NOT NULL, `type` int(11) NOT NULL, `description` text, `rule_name` varchar(64) DEFAULT NULL, `data` text, `created_at` int(11) DEFAULT NULL, `updated_at` int(11) DEFAULT NULL, PRIMARY KEY (`name`), KEY `rule_name` (`rule_name`), KEY `type` (`type`), CONSTRAINT `auth_item_ibfk_1` FOREIGN KEY (`rule_name`) REFERENCES `auth_rule` (`name`) ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8
2) La table d'association supérieure et subordonnée des autorisations et des rôles : auth_item_child
(comprend le relation : les rôles peuvent contenir des rôles, les rôles peuvent contenir des autorisations, les autorisations peuvent contenir des autorisations, mais les autorisations ne peuvent pas contenir de rôles)CREATE TABLE `auth_item_child` ( `parent` varchar(64) NOT NULL, `child` varchar(64) NOT NULL, PRIMARY KEY (`parent`,`child`), KEY `child` (`child`), CONSTRAINT `auth_item_child_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `auth_item_child_ibfk_2` FOREIGN KEY (`child`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8
3) Tableau d'attribution des utilisateurs et des autorisations (rôles) : auth_assignment
CREATE TABLE `auth_assignment` ( `item_name` varchar(64) NOT NULL, `user_id` varchar(64) NOT NULL, `created_at` int(11) DEFAULT NULL, PRIMARY KEY (`item_name`,`user_id`), CONSTRAINT `auth_assignment_ibfk_1` FOREIGN KEY (`item_name`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8
4) Table de règles : auth_rule
CREATE TABLE `auth_rule` ( `name` varchar(64) NOT NULL, `data` text, //存的是一个序列化的实现了yii\rbac\Rule接口的类的一个对象实例 `created_at` int(11) DEFAULT NULL, `updated_at` int(11) DEFAULT NULL, PRIMARY KEY (`name`), KEY `name` (`name`), KEY `created_at` (`created_at`), KEY `updated_at` (`updated_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限规则表';
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

L'article traite des meilleures pratiques pour déployer des applications YII dans des environnements natifs du cloud, en se concentrant sur l'évolutivité, la fiabilité et l'efficacité par la conteneurisation, l'orchestration et les mesures de sécurité.

L'article traite des considérations clés pour l'utilisation de YII dans des architectures sans serveur, en se concentrant sur l'état, les démarrages à froid, la taille de la fonction, les interactions de base de données, la sécurité et la surveillance. Il couvre également les stratégies d'optimisation et les intégrati potentiels

L'article traite des stratégies pour tester les applications YII à l'aide de CodeCeception, en se concentrant sur l'utilisation de modules intégrés, BDD, différents types de tests, moquerie, intégration CI et couverture de code.

L'article traite des outils de surveillance et de profilage des performances des applications YII, notamment la barre d'outils de débogage YII, le feu noir, la nouvelle relique, le XDebug et les solutions APM comme Datadog et Dynatrace.

Le framework de test intégré de YII améliore les tests d'application avec des fonctionnalités telles que l'intégration du phpunit, la gestion des fixations et la prise en charge de divers types de tests, améliorant la qualité du code et les pratiques de développement.

L'article discute de la mise en œuvre de la synchronisation des données en temps réel à l'aide de YII et WebSockets, couvrant la configuration, l'intégration et les meilleures pratiques de performance et de sécurité.

L'article traite des considérations clés pour le déploiement d'applications YII en production, en se concentrant sur la configuration de l'environnement, la gestion de la configuration, l'optimisation des performances, la sécurité, la journalisation, la surveillance, les stratégies de déploiement et les plans de sauvegarde / récupération.

L'article traite des avantages de YII pour le développement du SaaS, en se concentrant sur la performance, la sécurité et les caractéristiques de développement rapide pour améliorer l'évolutivité et réduire le délai de commercialisation.
