20.3 Autenticación en Django: Autenticar usuarios con nombre de usuario y contraseña

La autenticación de usuario es un aspecto crucial de cualquier aplicación web moderna. Django, un potente marco de desarrollo web Python, ofrece un sólido sistema de autenticación que permite a los desarrolladores implementar funciones para autenticar usuarios con nombre de usuario y contraseña de forma eficiente y segura.

Comprensión de la autenticación en Django

Django viene con un sistema de autenticación incorporado que maneja la autenticación de usuarios, sesiones, cookies, permisos y grupos de usuarios. Este sistema es altamente personalizable y extensible, lo que permite a los desarrolladores crear sistemas de autenticación complejos si es necesario.

La autenticación en Django se basa en sesiones, lo que significa que cuando un usuario se autentica exitosamente, se crea una sesión y se almacena en el servidor. Luego, esta sesión se utiliza para realizar un seguimiento del estado de autenticación del usuario en múltiples solicitudes.

Autenticación de usuarios con usuario y contraseña

Para autenticar a un usuario en Django, primero necesitamos crear un formulario de inicio de sesión que le permita al usuario ingresar su nombre de usuario y contraseña. Este formulario se puede crear usando la clase AuthenticationForm de Django.


desde formularios de importación de Django
desde django.contrib.auth.forms importar formulario de autenticación

clase Formulario de inicio de sesión (formulario de autenticación):
    nombre de usuario = formularios.CharField(max_length=254)
    contraseña = formularios.CharField (widget = formularios.PasswordInput)

Una vez creado el formulario de inicio de sesión, podemos usarlo en nuestra vista de inicio de sesión para autenticar al usuario. A continuación se muestra un ejemplo de cómo se puede hacer esto:


desde django.contrib.auth importar autenticar, iniciar sesión
desde django.http importar HttpResponseRedirect
desde django.shortcuts importar render

def login_view(solicitud):
    si solicitud.método == 'POST':
        formulario = Formulario de inicio de sesión (solicitud.POST)
        si form.is_valid():
            nombre de usuario = form.cleaned_data.get('nombre de usuario')
            contraseña = form.cleaned_data.get('contraseña')
            usuario = autenticar (solicitud, nombre de usuario = nombre de usuario, contraseña = contraseña)
            si el usuario no es Ninguno:
                iniciar sesión (solicitud, usuario)
                devolver HttpResponseRedirect('/éxito/')
    demás:
        formulario = Formulario de inicio de sesión()
    devolver render(solicitud, 'login.html', {'formulario': formulario})

En el código anterior, utilizamos la función authenticate() para verificar si el nombre de usuario y la contraseña ingresados ​​por el usuario coinciden con un usuario existente. Si el usuario se autentica correctamente, se llama a la función login() para registrar la sesión del usuario.

Seguridad de autenticación

Django proporciona varias funciones para hacer que la autenticación de usuarios sea más segura. Por ejemplo, la contraseña del usuario se almacena como un hash, lo que significa que incluso si la base de datos se ve comprometida, la contraseña real del usuario no será revelada. Además, Django también brinda protección contra ataques de fuerza bruta al limitar el número de intentos fallidos de inicio de sesión.

Además, es importante recordar que la seguridad de la autenticación también depende de prácticas de codificación seguras. Por ejemplo, es importante utilizar siempre conexiones HTTPS para proteger la información de inicio de sesión del usuario contra intercepciones y nunca almacenar información confidencial del usuario en el lado del cliente.

Conclusión

La autenticación de usuario es una parte esencial de cualquier aplicación web. Django proporciona un sistema de autenticación sólido y seguro que facilita la implementación de la funcionalidad de autenticación de usuario con nombre de usuario y contraseña. Con Django, puedes concentrarte en desarrollar la funcionalidad única de tu aplicación, sabiendo que la autenticación del usuario se maneja de manera segura y eficiente.

Ahora responde el ejercicio sobre el contenido:

¿Qué importancia tiene la autenticación de usuarios en las aplicaciones web y cómo ayuda Django con este proceso?

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

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Autenticación en Django: Autenticación de usuario con correo electrónico y contraseña

Siguiente página del libro electrónico gratuito:

135Autenticación en Django: Autenticación de usuario con correo electrónico y contraseña

3 minutos

¡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.