15.13. Plantillas en Django: Autenticación y Autorización

Página 87

15.13. Plantillas en Django: Autenticación y Autorización

Django, un marco de aplicaciones web Python, proporciona un sistema integrado de autenticación y autorización que permite a los desarrolladores crear aplicaciones web seguras y confiables. Este capítulo entrará en detalles sobre este sistema y cómo se puede personalizar para satisfacer las necesidades de diferentes proyectos.

Autenticación

La autenticación es el proceso de verificar la identidad de un usuario. En otras palabras, así es como el sistema determina quién es el usuario. En Django, la autenticación se realiza mediante el sistema de autenticación integrado.

El sistema de autenticación de Django proporciona un modelo de usuario que representa a los usuarios del sistema. Esta plantilla tiene campos para almacenar información como nombre de usuario, contraseña, correo electrónico, nombre y apellido. Además, el modelo de Usuario tiene métodos para verificar la contraseña, cambiar la contraseña y verificar que la cuenta de usuario esté activa.

Para autenticar a un usuario, Django proporciona la función authenticate(). Esta función acepta un nombre de usuario y contraseña y devuelve un objeto Usuario si la autenticación es exitosa. De lo contrario, devuelve Ninguno.

Ejemplo de autenticación

desde django.contrib.auth importar autenticar
usuario = autenticar (nombre de usuario = 'juan', contraseña = 'secreto')
si el usuario no es Ninguno:
    # Un backend autenticó las credenciales
demás:
    # Ningún backend autenticó las credenciales

Autorización

La autorización es el proceso de determinar qué puede hacer un usuario autenticado. En Django, la autorización se realiza mediante el sistema de permisos integrado.

El sistema de permisos de Django proporciona una manera de definir lo que los usuarios pueden y no pueden hacer. Los permisos se definen en términos de plantillas y acciones. Por ejemplo, puede establecer un permiso que permita a un usuario agregar, cambiar o eliminar instancias de un modelo específico.

Los permisos se almacenan en la plantilla de permisos, que tiene campos para el nombre del permiso, el contenido del tipo de permiso y la plantilla a la que se aplica el permiso. El modelo de Usuario tiene una relación de muchos a muchos con el modelo de Permiso, lo que significa que un usuario puede tener múltiples permisos y se puede asignar un permiso a múltiples usuarios.

Ejemplo de autorización

de django.contrib.auth.models importar usuario, permiso
desde django.contrib.contenttypes.models importar ContentType
desde myapp.models importar BlogPost

content_type = ContentType.objects.get_for_model(BlogPost)
permiso = Permiso.objetos.create(
    nombre en clave = 'can_publish',
    name='Puede publicar publicaciones',
    tipo_contenido=tipo_contenido,
)
usuario = Usuario.objetos.get (nombre de usuario = 'juan')
usuario.user_permissions.add(permiso)

Además, Django proporciona la función has_perm() que comprueba si un usuario tiene un permiso específico. Esta función acepta el nombre del permiso y devuelve Verdadero si el usuario tiene el permiso y Falso en caso contrario.

Ejemplo de verificación de permisos

si usuario.has_perm('myapp.can_publish'):
    # El usuario tiene el permiso
demás:
    # El usuario no tiene el permiso

Conclusión

El sistema de autenticación y autorización de Django es una poderosa herramienta que permite a los desarrolladores crear aplicaciones web seguras y confiables. Con él, puedes controlar quién tiene acceso a tu aplicación y qué puede hacer. Y gracias a la flexibilidad de Django, puedes personalizar este sistema para adaptarlo a las necesidades de tu proyecto.

Ahora responde el ejercicio sobre el contenido:

¿Cuál es la función del sistema de autenticación y autorización integrado de Django?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Siguiente página del libro electrónico gratuito:

8815.14. Modelos en Django: Pruebas en Django

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.