Gestión de cuentas de usuario, roles, permisos, autenticación PHP y MySQL

Si estás construyendo alguna aplicación web que implique la creación, lectura, actualización y eliminación de información de cualquier tipo, será muy común que los privilegios para realizar estas diferentes operaciones sobre los datos tengan que ser compartidos entre tus usuarios según sus diferentes roles. .y permisos en su aplicación.

Tome una aplicación de gestión escolar, por ejemplo. Los usuarios de dicha aplicación suelen pertenecer a las categorías: estudiantes, profesores, jefe de departamento (HOD), etc. Su solicitud NO debe permitir que un estudiante tenga el privilegio de agregar o actualizar sus resultados para los exámenes semestrales. Esa sería la función de un Maestro. Y cuando se va a agregar un nuevo curso o asignatura al plan de estudios, solo el Jefe de Departamento tiene la tarea de agregar ese curso al sistema.

En tal sistema, podemos referirnos a Estudiante, Maestro, HOD (Jefe de Departamento) como los diferentes roles en nuestra aplicación. En cuanto a acciones como agregar y actualizar los resultados de los estudiantes, agregar nuevos cursos, nos referiremos a estos como el permisos.

De la explicación hasta ahora, ya se puede deducir que un Cliente tendrá uno rollos y un rol tendrá múltiples permisos. Por ejemplo, John (un usuario) tendrá un rol (Estudiante) y múltiples Permisos (registrar curso, ver calificaciones, imprimir expediente académico, etc.).

Esto significa que en nuestra base de datos MySQL necesitaremos 3 tablas de base de datos principales: usuarios, roles, y permisos. Estamos obligados a tener una relación de varios a uno entre usuarios y roles tablas de base de datos (un rol pertenece a muchos usuarios) y una relación de varios a varios entre roles y permisos tablas (se pueden asignar muchos permisos a muchos roles).

La forma en que se refiere a estos roles depende de usted. En nuestro ejemplo, hemos estado usando Student, Teacher, HOD para representar los roles porque el ejemplo era sobre una aplicación de gestión escolar. Si estaba trabajando en una aplicación de gestión de hotel, los roles pueden ser algo como Gerente, Limpiador, Recepcionista y similares.

En este tutorial, estamos creando un sistema de administración de cuentas de usuario para una aplicación de blog. Por lo tanto, nos referiremos a estos roles como Autor, Editor y Administrador. Por supuesto, puede cambiarlos como desee, pero estos tres son casi un estándar para los sistemas de gestión de contenido.

Se implementará un sistema completo de registro e inicio de sesión de administrador / usuario. Todos los usuarios iniciarán sesión a través del mismo formulario de inicio de sesión y, una vez que hayan iniciado sesión, solo los usuarios administrativos (autores, editores, administradores) tendrán acceso al panel de administración, mientras que los usuarios normales serán redirigidos a la página de inicio pública.

Crearemos un publicaciones tabla de base de datos en nuestra base de datos para tener algo para probar nuestros permisos. Por ejemplo, un usuario con el rol de Editor podrá editar, actualizar, publicar, anular la publicación y eliminar todas y cada una de las publicaciones, mientras que un Autor solo tendrá permiso para crear, leer, actualizar y eliminar solo aquellas publicaciones que hayan sido creadas por ellos mismos. Administración tendrá permiso para crear, actualizar, eliminar otros usuarios y roles administrativos y también para asignar / desasignar permisos a roles y roles a los usuarios.

NOTA: Ya hice un tutorial sobre cómo crear una aplicación de blog completa desde cero. Por lo tanto, no implementaremos la creación, eliminación y actualización de publicaciones aquí. Solo demostraremos cómo funcionan estos permisos en las publicaciones. Si desea aprender a crear un blog con publicaciones, consulte mi otro tutorial sobre cómo crear un blog en PHP.

En caso de que vuelva a visitarlo, este tutorial se ha actualizado. ¡Disfrutar!

Estructura del directorio del proyecto.

Crea una carpeta de proyecto llamada cuentas de usuario y luego crea otras tres carpetas dentro de él: administración, incluye, activos, cada una con las siguientes subcarpetas:

administración: Esta carpeta contiene el código fuente para la parte administrativa de la aplicación. En esta carpeta, cree otras tres carpetas, a saber, publicaciones, roles, usuarios.

activos: Esto contendrá archivos públicos a los que accederá el navegador, como imágenes, css, js. Así que, dentro de los activos, cree imagenes, css y js carpetas.

incluye: Esto contendrá parches de código fuente para nuestra aplicación que podemos incluir en diferentes lugares de nuestra aplicación. Dentro de esta carpeta, cree otras dos carpetas: diseños y lógico.

En este punto, la estructura de nuestro proyecto está lista. Ahora podemos empezar a codificar el sistema. Lo haremos en la siguiente parte de este tutorial.

Awa Melvine

4.5/5 - (708 votos)

Deja un comentario