Fase 3 (islas): cambiar contraseña y token de seguridad en React/TSX

Ambas vistas ya devolvían JSON en POST y exigen sesión, así que sin cambio de backend:

- ChangePasswordForm.tsx: 4 campos (actual/nueva/confirmar/token) con mostrar-ocultar;
  POST form-urlencoded + CSRF a change_password; mensaje HTML; si el backend responde
  redirect:true (logout por seguridad), redirige a login.
- SecurityTokenForm.tsx: muestra la fecha del token y un botón que solicita uno nuevo;
  POST -> actualiza la fecha con token_date de la respuesta.
- Plantillas: los <form> + scripts jQuery se sustituyen por las islas
  (#change-password-app / #security-token-app) con data-csrf/data-url. El texto
  informativo y los enlaces se quedan en Django.

Verificado: check OK; ambas vistas siguen redirigiendo a login/index sin sesión.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-12 21:26:30 +00:00
parent b2069df4c3
commit d0febb4855
7 changed files with 220 additions and 39 deletions
+2
View File
@@ -21,6 +21,8 @@ export default defineConfig({
recover: resolve(__dirname, 'src/entries/recover.tsx'),
reset_password: resolve(__dirname, 'src/entries/reset_password.tsx'),
my_account: resolve(__dirname, 'src/entries/my_account.tsx'),
change_password: resolve(__dirname, 'src/entries/change_password.tsx'),
security_token: resolve(__dirname, 'src/entries/security_token.tsx'),
},
},
},