This commit is contained in:
Lizandro Guarnizo
2025-04-18 07:38:32 -05:00
parent 462eb0d42c
commit 79d6cca94d
23 changed files with 821 additions and 73 deletions
+2 -25
View File
@@ -80,52 +80,29 @@ func ReenvioEmail(c *fiber.Ctx) error {
// Función para manejar la solicitud de restablecimiento de contraseña
func RequestPasswordResetPost(c *fiber.Ctx) error {
// Crear una estructura para mapear los datos entrantes
type Request struct {
NombreUsuario string `json:"nombre_usuario"` // Mapeo con la clave del JSON
}
var req Request
// Parsear el cuerpo JSON de la solicitud
if err := c.BodyParser(&req); err != nil {
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
"success": false,
"message": "Invalid JSON format",
})
}
// Obtener el usuario del JSON parseado
usuario := req.NombreUsuario
usuario := c.FormValue("nombre_usuario")
fmt.Println("Usuario recibido:", usuario)
// Intentar obtener el usuario por nombre de usuario
user, err := models.GetUserByUsuario(usuario)
if err != nil || user == nil {
// Devolver respuesta de error en formato JSON
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
"success": false,
"message": "Usuario inactivo o no existente",
})
}
// Obtener el email del usuario
usuario_email := user.Email
// Imprimir el email en la consola
log.Println("Sending password reset email to:", usuario_email)
// Enviar el correo de restablecimiento de contraseña de forma asíncrona
go services.SendPasswordResetEmail(usuario_email, app.Http.Server.Url)
// Devolver respuesta de éxito en formato JSON
return c.JSON(fiber.Map{
"success": true,
"message": "We've sent an email to reset your password to your registered email address",
})
}
// todo: Generar contrasenas aleatorias /do/generate-password
func generatePassword(length int) (string, error) {
const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%&"