recovery del pass hecho en el backend a falta de hacer los formularios

This commit is contained in:
2025-09-28 18:36:44 +02:00
parent 22198b4f25
commit 865b1573b9
15 changed files with 517 additions and 8 deletions

View File

@ -58,4 +58,14 @@ security.rememberme.key=N`BY^YRVO:/\H$hsKxNq
#
# Enable HiddenHttpMethodFilter to support PUT and DELETE methods in forms
#
spring.mvc.hiddenmethod.filter.enabled=true
spring.mvc.hiddenmethod.filter.enabled=true
#
# Email
#
spring.mail.host=smtp.ionos.es
spring.mail.port=587
spring.mail.username=no-reply@imprimelibros.com
spring.mail.password=%j4Su*#ZcjRDYsa$
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

View File

@ -0,0 +1,2 @@
auth.reset.request.success=Si existe una cuenta asociada, se han enviado las instrucciones.
auth.reset.form.passwordsMismatch=Las contraseñas no coinciden.

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,6 @@
email.resetPassword.title=Restablecer contraseña
email.greeting=Hola
email.resetPassword.body=Hemos recibido una solicitud para restablecer tu contraseña. Haz clic en el siguiente botón:
email.resetPassword.button=Restablecer contraseña
email.resetPassword.ignoreMessage=Si no solicitaste este cambio, puedes ignorar este mensaje.
email.footer=Imprimelibros - Todos los derechos reservados.

View File

@ -0,0 +1,35 @@
body {
font-family: Arial, sans-serif;
background: #f8f9fa;
padding: 20px;
}
.container {
background: #fff;
border-radius: 8px;
padding: 20px;
max-width: 600px;
margin: auto;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.header {
text-align: center;
margin-bottom: 20px;
}
.btn {
display: inline-block;
padding: 10px 20px;
background: #0d6efd;
color: #fff;
text-decoration: none;
border-radius: 5px;
}
.footer {
margin-top: 20px;
font-size: 12px;
color: #6c757d;
text-align: center;
}

View File

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title th:text="#{email.resetPassword.title}">Recuperación de contraseña</title>
<link rel="stylesheet" th:href="@{/css/email.css}">
</head>
<body>
<div class="container">
<div class="header">
<!-- Logo insertado como imagen inline -->
<img th:src="@{cid:companyLogo}" alt="Logo Imprimelibros" width="150">
</div>
<p><span th:text="#{email.greeting}">Hola</span> <b th:text="${username}">Usuario</b>,</p>
<p th:text="#{email.resetPassword.body}">Hemos recibido una solicitud para restablecer tu contraseña. Haz clic en el siguiente botón:</p>
<p style="text-align:center;">
<a th:href="${resetLink}" class="btn" th:text="#{email.resetPassword.button}">Restablecer contraseña</a>
</p>
<p th:text="#{email.resetPassword.ignoreMessage}">Si no solicitaste este cambio, puedes ignorar este mensaje.</p>
<div class="footer">
© <span th:text="${year}">2025</span> <span th:text="#{email.footer}">Imprimelibros - Todos los derechos reservados.</span>
</div>
</div>
</body>
</html>