diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index eec2ce0..20d7631 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,4 +1,5 @@ +{#if from == 'cambio_contraseña'} + { + from = ''; + }} + > + Se cambio la contraseña del usuario exitosamente + +{/if} + diff --git a/src/routes/password-reset/+page.svelte b/src/routes/password-reset/+page.svelte index e60079b..c56b523 100644 --- a/src/routes/password-reset/+page.svelte +++ b/src/routes/password-reset/+page.svelte @@ -14,6 +14,7 @@ let estado: 'email' | 'otp' | 'nuevapass' = $state('email'); let email: string = $state(''); + let otp: string = $state('');
@@ -22,10 +23,12 @@
{#if estado === 'email'} - {:else if estado === 'otp'} - - {:else if estado === 'nuevapass'} - + {/if} + {#if estado === 'otp'} + + {/if} + {#if estado === 'nuevapass'} + {/if}
diff --git a/src/routes/password-reset/IngresarEmail.svelte b/src/routes/password-reset/IngresarEmail.svelte index 61d370e..bd10395 100644 --- a/src/routes/password-reset/IngresarEmail.svelte +++ b/src/routes/password-reset/IngresarEmail.svelte @@ -1,10 +1,14 @@ +{#if mensajeError} + (mensajeError = '')}> + + + + +{/if}
@@ -47,16 +70,31 @@ {/if} - - +
+ + +
+
diff --git a/src/routes/password-reset/NuevaPass.svelte b/src/routes/password-reset/NuevaPass.svelte index 7cf9f6b..54cabf8 100644 --- a/src/routes/password-reset/NuevaPass.svelte +++ b/src/routes/password-reset/NuevaPass.svelte @@ -1,17 +1,66 @@ +{#if mensajeError} + (mensajeError = '')}> + + + + +{/if} +

Crear una Nueva Contraseña

-
{}}> + { + e.preventDefault(); + const formData = new FormData(); + formData.append('otp', otp); + formData.append('email', email); + formData.append('newpass', pass); + try { + const req = await fetch(`${$apiBase}/api/password-reset/change`, { + method: 'PATCH', + body: formData + }); + if (req.ok) { + const token = await req.json(); + sesionStore.set(token); + goto('/?from=cambio_contraseña'); + return; + } + const data = await req.text(); + mensajeError = data; + } catch { + mensajeError = 'No se pudo alcanzar el servidor'; + } + }} + >
@@ -20,7 +69,12 @@ id="password" class="w-full px-3 py-2" placeholder="Ingresa tu nueva contraseña" + bind:value={pass} /> +

+ La contraseña debe contener al menos una mayúscula, una minúscula, un número y un + carácter especial. Además de 8 chars de longitud. +

- +
diff --git a/src/routes/password-reset/Otp.svelte b/src/routes/password-reset/Otp.svelte index ab14abc..39c9cec 100644 --- a/src/routes/password-reset/Otp.svelte +++ b/src/routes/password-reset/Otp.svelte @@ -1,15 +1,38 @@ +{#if mensajeError} + (mensajeError = '')}> + + + + +{/if} +
@@ -21,10 +44,10 @@
- + {#snippet children({ cells })} - {#each cells as cell, i} + {#each cells as cell} {/each} @@ -33,7 +56,30 @@
- +