ed92991872
Agent-Logs-Url: https://github.com/dsaub/proyecto-final/sessions/49df17c8-213a-4e23-adfe-465a0104f6a3 Co-authored-by: dsaub <54474838+dsaub@users.noreply.github.com>
1.8 KiB
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.auditcon la IP del cliente.