Files

1.8 KiB

login

Archivo: tienda/views.py
URL: /tienda/login/
Tipo: Vista pública

Descripción

Gestiona el inicio de sesión de un usuario.

  • GET → Renderiza el formulario de login.
  • POST → Autentica al usuario con email y contraseña.
    • Si el correo no existe: muestra error y registra el intento fallido.
    • Si la cuenta no está verificada (registration_status == "CR"): muestra error sin autenticar.
    • Si las credenciales son correctas: inicia la sesión, configura su duración, envía un correo de bienvenida asíncrono (tarea Celery) y redirige al catálogo.
    • Si la contraseña es incorrecta: muestra error y registra el intento fallido.

Firma

def login(request: HttpRequest):

Parámetros

Nombre Tipo Descripción
request HttpRequest Petición HTTP de Django.

Campos del formulario POST

Campo Descripción
email Correo electrónico del usuario.
password Contraseña del usuario.
remember Si está presente, la sesión dura 14 días; de lo contrario, expira al cerrar el navegador.

Redirecciones

Caso Destino
Login correcto index
Login fallido / cuenta no verificada Mismo template tienda/login.html

Template

tienda/login.html

Note

Los intentos de inicio de sesión (correctos y fallidos) se registran en el logger de auditoría tienda.audit con la IP del cliente.