Token de seguridad y cambio de contraseña (páginas protegidas)
- lib/security-token.ts: requestSecurityToken (token de 6 chars, cooldown 7 días, guarda en home_securitytoken, email) + checkSecurityToken. - lib/change-password.ts: changePassword (valida token + contraseña actual con authenticate, re-deriva verifier SRP6 v2, actualiza battlenet_accounts). - Routes /api/account/security-token y /change-password (guard; el cambio hace logout de la sesión). Páginas /security-token y /change-password (protegidas) con sus forms cliente e i18n (SecurityToken, ChangePassword). Verificado: páginas redirigen a login sin sesión, APIs 401. Reutiliza home_securitytoken de Django y la crypto validada. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -176,5 +176,35 @@
|
||||
"destination": "Cuenta de destino",
|
||||
"success": "El personaje {name} ha sido transferido a la cuenta de destino."
|
||||
}
|
||||
},
|
||||
"SecurityToken": {
|
||||
"title": "Token de seguridad",
|
||||
"info": "El token de seguridad es un código de 6 caracteres (sensible a mayúsculas) que se solicita para acciones importantes de tu cuenta. Puedes solicitar uno nuevo cada 7 días.",
|
||||
"lastRequest": "Fecha de solicitud",
|
||||
"never": "Sin solicitar",
|
||||
"request": "Solicitar token",
|
||||
"requesting": "Solicitando…",
|
||||
"success": "Se ha enviado el token de seguridad a tu correo.",
|
||||
"cooldown": "Solo puedes solicitar un token cada 7 días.",
|
||||
"noEmail": "Añade un correo a tu cuenta antes de solicitar un token.",
|
||||
"genericError": "Algo ha salido mal. Inténtalo más tarde."
|
||||
},
|
||||
"ChangePassword": {
|
||||
"title": "Cambiar contraseña",
|
||||
"info": "La nueva contraseña debe ser alfanumérica y de hasta 16 caracteres. Necesitas un token de seguridad.",
|
||||
"currentPassword": "Contraseña actual",
|
||||
"newPassword": "Contraseña nueva",
|
||||
"confPassword": "Confirmar contraseña nueva",
|
||||
"token": "Token de seguridad",
|
||||
"submit": "Cambiar contraseña",
|
||||
"changing": "Cambiando…",
|
||||
"success": "Contraseña cambiada. Has sido desconectado por seguridad.",
|
||||
"missingFields": "Por favor, complete todos los campos.",
|
||||
"passwordMismatch": "Las contraseñas no coinciden.",
|
||||
"passwordTooLong": "La contraseña no debe exceder los 16 caracteres.",
|
||||
"invalidToken": "El token de seguridad es incorrecto.",
|
||||
"wrongCurrentPassword": "La contraseña actual es incorrecta.",
|
||||
"accountNotFound": "No se ha encontrado la cuenta.",
|
||||
"genericError": "Algo ha salido mal. Inténtalo más tarde."
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user