Cambio de email con doble confirmación (completa el bloque de auth)
- lib/change-email.ts: requestEmailChange (valida pass/email/token, crea activación con old_email/old_email_hash, email al correo actual), confirmOldEmail (marca is_used, email al nuevo), confirmNewEmail (re-deriva verifier con el nuevo email + actualiza battlenet_accounts y account; borra la activación). - components/ConfirmClient.tsx: cliente genérico que confirma un hash por POST al abrir. - Routes /api/account/change-email, /confirm-old-email, /confirm-new-email. - Páginas /change-email (protegida) y /confirm-old-email, /confirm-new-email (auto). - Catálogos ChangeEmail, ConfirmOldEmail, ConfirmNewEmail. Verificado: change-email protegida (401/redirect), confirmaciones con hash inválido -> invalidLink sin crash. AUTH 100% reimplementado en Next.js. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -206,5 +206,36 @@
|
||||
"wrongCurrentPassword": "La contraseña actual es incorrecta.",
|
||||
"accountNotFound": "No se ha encontrado la cuenta.",
|
||||
"genericError": "Algo ha salido mal. Inténtalo más tarde."
|
||||
},
|
||||
"ChangeEmail": {
|
||||
"title": "Cambiar correo",
|
||||
"info": "El correo actual debe escribirse tal cual, respetando mayúsculas/minúsculas. El nuevo correo debe ser de Gmail. Necesitas un token de seguridad.",
|
||||
"currentPassword": "Contraseña actual",
|
||||
"currentEmail": "Correo actual",
|
||||
"newEmail": "Nuevo correo",
|
||||
"confEmail": "Confirmar nuevo correo",
|
||||
"token": "Token de seguridad",
|
||||
"submit": "Cambiar correo",
|
||||
"sending": "Enviando…",
|
||||
"success": "Se ha enviado un correo de confirmación a tu correo actual.",
|
||||
"missingFields": "Por favor, complete todos los campos.",
|
||||
"wrongCurrentEmail": "El correo actual no es correcto.",
|
||||
"invalidEmail": "El nuevo correo no es válido.",
|
||||
"invalidToken": "El token de seguridad es incorrecto.",
|
||||
"wrongCurrentPassword": "La contraseña actual es incorrecta.",
|
||||
"genericError": "Algo ha salido mal. Inténtalo más tarde."
|
||||
},
|
||||
"ConfirmOldEmail": {
|
||||
"title": "Confirmar cambio de correo",
|
||||
"activating": "Confirmando…",
|
||||
"success": "Correo actual confirmado. Revisa tu NUEVO correo para completar el segundo paso.",
|
||||
"error": "El enlace no es válido o ya se ha usado."
|
||||
},
|
||||
"ConfirmNewEmail": {
|
||||
"title": "Confirmar nuevo correo",
|
||||
"activating": "Aplicando el cambio…",
|
||||
"success": "¡Correo cambiado con éxito! Ya puedes iniciar sesión con el nuevo correo.",
|
||||
"error": "El enlace no es válido, ha caducado o no se ha encontrado la cuenta.",
|
||||
"goLogin": "Ir a iniciar sesión"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user