Mysql
 sql >> Base de données >  >> RDS >> Mysql

Gestion des comptes utilisateurs, rôles, permissions, authentification PHP et MySQL

Si vous construisez une application Web qui implique la création, la lecture, la mise à jour et la suppression d'informations de toute nature, il sera très courant que les privilèges pour effectuer ces différentes opérations sur les données devront être partagés entre vos utilisateurs en fonction de leurs différents rôles. et les autorisations sur votre application.

Prenons par exemple une application de gestion d'école. Les utilisateurs d'une telle application appartiennent généralement aux catégories suivantes :étudiants, enseignants, chefs de département (HOD), etc. Votre candidature ne doit PAS permettre à un étudiant d'avoir le privilège d'ajouter ou de mettre à jour ses résultats pour les examens du semestre. Ce serait la fonction d'un Enseignant. Et lorsqu'un nouveau cours ou une nouvelle matière doit être ajouté au programme, il appartient uniquement au chef de département d'ajouter ce cours sur le système.

Sur un tel système, nous pouvons faire référence à Étudiant, Enseignant, HOD (Chef de Département) comme les différents rôles dans notre application. En ce qui concerne les actions telles que l'ajout et la mise à jour des résultats des élèves, l'ajout de nouveaux cours, nous les appellerons les autorisations.

De l'explication jusqu'à présent, on peut déjà déduire qu'un utilisateur aura un rôle et qu'un rôle aura plusieurs autorisations. Par exemple, John (un utilisateur) aura un rôle (Étudiant) et plusieurs autorisations (s'inscrire au cours, afficher les notes, imprimer la transcription, etc.).

Cela signifie que dans notre base de données MySQL, nous aurons besoin de 3 tables de base de données principales :utilisateurs, rôles et autorisations. Nous devons avoir une relation plusieurs-à-un entre les utilisateurs et les tables de base de données de rôles (un rôle appartient à plusieurs utilisateurs), et une relation plusieurs-à-plusieurs entre les rôles et les tables d'autorisations (de nombreuses autorisations peuvent être attribuées à plusieurs rôles) .

La façon dont vous faites référence à ces rôles dépend de vous. Dans notre exemple, nous avons utilisé Student, Teacher, HOD pour représenter les rôles car l'exemple concernait une application de gestion scolaire. Si vous travailliez sur une application de gestion hôtelière, les rôles peuvent être quelque chose comme Manager, Cleaner, Receptionist et similaires.

Dans ce didacticiel, nous construisons un système de gestion des comptes d'utilisateurs pour une application de blog. Nous ferons donc référence à ces rôles en tant qu'auteur, éditeur et administrateur. Bien sûr, vous pouvez les modifier à votre guise, mais ces trois-là sont presque un standard pour les systèmes de gestion de contenu.

Un système complet d'enregistrement et de connexion des administrateurs/utilisateurs sera mis en place. Tous les utilisateurs se connecteront via le même formulaire de connexion et une fois connectés, seuls les utilisateurs administratifs (auteurs, éditeurs, administrateurs) auront accès au tableau de bord d'administration tandis que les utilisateurs normaux seront redirigés vers la page d'accueil publique.

Nous allons créer une table de postes dans notre base de données afin d'avoir quelque chose sur quoi tester nos autorisations. Par exemple, un utilisateur ayant le rôle d'éditeur sera en mesure de modifier, mettre à jour, publier, dépublier et supprimer tous les messages, tandis qu'un auteur n'aura l'autorisation de créer, lire, mettre à jour et supprimer que les messages qui ont été créés par eux-mêmes. L'administrateur aura l'autorisation de créer, mettre à jour, supprimer d'autres utilisateurs et rôles administratifs, ainsi que d'attribuer/annuler l'attribution d'autorisations aux rôles et rôles aux utilisateurs.

REMARQUE :J'ai déjà réalisé un didacticiel sur la création d'une application de blog complète à partir de zéro. Nous n'implémenterons donc pas la création, la suppression et la mise à jour des publications ici. Nous allons simplement montrer comment ces autorisations fonctionnent autour des publications. Si vous voulez apprendre à créer un blog avec des articles, consultez mon autre tutoriel sur la création d'un blog en PHP.

Structure du répertoire de projet.

Créez un dossier de projet appelé comptes d'utilisateurs , puis créez trois autres dossiers à l'intérieur :admin, includes, assets, chacun ayant les sous-dossiers suivants :

admin :ce dossier contient le code source de la partie admin de l'application. Dans ce dossier, créez trois autres dossiers à savoir, messages, rôles, utilisateurs.

assets :cela contiendra les fichiers publics auxquels le navigateur accédera, tels que les images, css, js. Donc, à l'intérieur des actifs, créez des images, des dossiers css et js.

inclut :Cela contiendra des correctifs de code source pour notre application que nous pouvons inclure à différents endroits dans notre application. Dans ce dossier, créez deux autres dossiers :layouts et logical.

À ce stade, notre structure de projet est définie. Nous pouvons maintenant commencer à coder le système. Nous le ferons dans la prochaine partie de ce didacticiel.

Merci pour votre attention et j'espère vous voir dans la prochaine partie.