8920585b24
recover_account_view era un stub que solo renderizaba (los formularios no tenían backend y el HTML arrastraba un reCAPTCHA de otro dominio). Ahora es funcional: Backend: - Modelo PasswordReset (token+email+expiración 1h) + migración 0014. - recover_account_view maneja POST JSON con 3 tipos, todo por email (bnet), con respuestas genéricas anti-enumeración: * password: crea token y envía enlace de reset (emails/password_reset.html). * accountname: envía las cuentas de juego ligadas (emails/account_names.html). * activation: reenvía el enlace de activación pendiente (emails/activation.html). - reset_password_view: GET valida el token (isla), POST re-deriva el verifier SRP6 v2 de la cuenta bnet (bnet.bnet_make_registration) y lo actualiza; marca el token usado. Ruta 'reset-password'. - Resiliente si la BD de cuentas (AzerothCore) no está disponible: mensaje limpio, nunca 500. Frontend (islas Vite): RecoverForm.tsx (selector de tipo + email) y ResetPassword.tsx (nueva contraseña con token). Se elimina el reCAPTCHA roto; se puede añadir uno propio si se aportan claves. Verificado en producción: los 3 flujos devuelven éxito genérico; reset valida token y contraseñas; token válido no provoca 500. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
27 lines
991 B
TypeScript
27 lines
991 B
TypeScript
import { defineConfig } from 'vite'
|
|
import react from '@vitejs/plugin-react'
|
|
import { resolve } from 'node:path'
|
|
|
|
// El bundle se construye en ../static/dist (que está en STATICFILES_DIRS),
|
|
// con manifest para que django-vite resuelva los assets en producción.
|
|
// base '/static/dist/' → coincide con static_url_prefix='dist' de django-vite.
|
|
export default defineConfig({
|
|
plugins: [react()],
|
|
base: '/static/dist/',
|
|
build: {
|
|
manifest: true,
|
|
outDir: resolve(__dirname, '../static/dist'),
|
|
emptyOutDir: true,
|
|
rollupOptions: {
|
|
input: {
|
|
home: resolve(__dirname, 'src/entries/home.tsx'),
|
|
login: resolve(__dirname, 'src/entries/login.tsx'),
|
|
register: resolve(__dirname, 'src/entries/register.tsx'),
|
|
select_account: resolve(__dirname, 'src/entries/select_account.tsx'),
|
|
recover: resolve(__dirname, 'src/entries/recover.tsx'),
|
|
reset_password: resolve(__dirname, 'src/entries/reset_password.tsx'),
|
|
},
|
|
},
|
|
},
|
|
})
|