Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Benutzerkontenverwaltung, Rollen, Berechtigungen, Authentifizierung PHP und MySQL

Wenn Sie eine Webanwendung erstellen, die das Erstellen, Lesen, Aktualisieren und Löschen von Informationen jeglicher Art beinhaltet, ist es sehr üblich, dass die Berechtigungen zum Ausführen dieser unterschiedlichen Vorgänge mit Daten unter Ihren Benutzern entsprechend ihren unterschiedlichen Rollen geteilt werden müssen und Berechtigungen für Ihre Anwendung.

Nehmen Sie zum Beispiel eine Schulverwaltungsanwendung. Benutzer einer solchen Anwendung fallen normalerweise in die Kategorien:Studenten, Lehrer, Abteilungsleiter (HOD) und so weiter. Ihre Bewerbung sollte es einem Studenten NICHT ermöglichen, seine Ergebnisse für die Semesterprüfungen hinzuzufügen oder zu aktualisieren. Das wäre die Funktion eines Lehrers. Und wenn dem Lehrplan ein neuer Kurs oder ein neues Fach hinzugefügt werden soll, muss nur der Abteilungsleiter diesen Kurs in das System aufnehmen.

In einem solchen System können wir uns auf Schüler, Lehrer, HOD (Abteilungsleiter) als die verschiedenen Rollen beziehen in unserer Bewerbung. Aktionen wie das Hinzufügen und Aktualisieren von Schülerergebnissen oder das Hinzufügen neuer Kurse werden wir als Berechtigungen bezeichnen.

Aus der bisherigen Erläuterung lässt sich bereits ableiten, dass ein Benutzer eine Rolle und eine Rolle mehrere Berechtigungen haben wird. Beispielsweise hat John (ein Benutzer) eine Rolle (Student) und mehrere Berechtigungen (Kurs registrieren, Noten anzeigen, Transkript drucken usw.).

Das bedeutet, dass wir in unserer MySQL-Datenbank 3 Hauptdatenbanktabellen benötigen:Benutzer, Rollen und Berechtigungen. Wir müssen eine Viele-zu-Eins-Beziehung zwischen Benutzern und Rollendatenbanktabellen haben (eine Rolle gehört vielen Benutzern) und eine Viele-zu-Viele-Beziehung zwischen Rollen und Berechtigungstabellen (Viele Berechtigungen können vielen Rollen zugewiesen werden). .

Wie Sie sich auf diese Rollen beziehen, liegt ganz bei Ihnen. In unserem Beispiel haben wir Student, Teacher, HOD verwendet, um die Rollen darzustellen, da es in dem Beispiel um eine Schulverwaltungsanwendung ging. Wenn Sie an einer Hotelverwaltungsanwendung gearbeitet haben, könnten die Rollen so etwas wie Manager, Reinigungskraft, Rezeptionist und dergleichen sein.

In diesem Lernprogramm erstellen wir ein Benutzerkontenverwaltungssystem für eine Bloganwendung. Daher bezeichnen wir diese Rollen als Autor, Redakteur und Administrator. Natürlich können Sie diese nach Belieben ändern, aber diese drei sind fast ein Standard für Content-Management-Systeme.

Ein vollständiges Admin-/Benutzerregistrierungs- und Anmeldesystem wird implementiert. Alle Benutzer melden sich über dasselbe Anmeldeformular an, und nach der Anmeldung haben nur administrative Benutzer (Autoren, Redakteure, Administratoren) Zugriff auf das Admin-Dashboard, während normale Benutzer auf die öffentliche Homepage umgeleitet werden.

Wir werden in unserer Datenbank eine Posts-Datenbanktabelle erstellen, um etwas zu haben, an dem wir unsere Berechtigungen testen können. Beispielsweise kann ein Benutzer mit der Rolle eines Bearbeiters alle Beiträge bearbeiten, aktualisieren, veröffentlichen, die Veröffentlichung aufheben und löschen, während ein Autor nur die Berechtigung zum Erstellen, Lesen, Aktualisieren und Löschen von bereits veröffentlichten Beiträgen hat selbst erstellt. Der Administrator hat die Berechtigung, andere Administratoren und Rollen zu erstellen, zu aktualisieren und zu löschen sowie Berechtigungen für Rollen und Rollen für Benutzer zuzuweisen bzw. die Zuweisung aufzuheben.

HINWEIS:Ich habe bereits ein Tutorial zum Erstellen einer vollständigen Blog-Anwendung von Grund auf erstellt. Daher werden wir das Erstellen, Löschen und Aktualisieren von Beiträgen hier nicht wirklich implementieren. Wir werden nur zeigen, wie diese Berechtigungen bei Beiträgen funktionieren. Wenn Sie lernen möchten, wie man einen Blog mit Beiträgen erstellt, sehen Sie sich mein anderes Tutorial an, wie man einen Blog in PHP erstellt.

Projektverzeichnisstruktur.

Erstellen Sie einen Projektordner mit dem Namen „Benutzerkonten“ und erstellen Sie darin drei weitere Ordner:„admin“, „includes“, „assets“, die jeweils die folgenden Unterordner haben:

admin:Dieser Ordner enthält den Quellcode für den Admin-Teil der Anwendung. Erstellen Sie in diesem Ordner drei weitere Ordner, nämlich Beiträge, Rollen, Benutzer.

Assets:Enthält öffentliche Dateien, auf die vom Browser zugegriffen wird, z. B. Bilder, CSS, JS. Erstellen Sie also innerhalb von Assets Bilder, CSS- und JS-Ordner.

include:Enthält Patches des Quellcodes für unsere Anwendung, die wir an verschiedenen Stellen in unsere Anwendung einfügen können. Erstellen Sie in diesem Ordner zwei weitere Ordner:layouts und logic.

An diesem Punkt ist unsere Projektstruktur fertig. Wir können jetzt mit dem Programmieren des Systems beginnen. Das werden wir im nächsten Teil dieses Tutorials tun.

Vielen Dank für Ihre Aufmerksamkeit und ich hoffe, Sie im nächsten Teil zu sehen.