El enlace de activación vuelve a ser alfanumérico; avisar a qué correo se envió
Dos cosas que el port de Django cambió sin querer:
- El hash de activación se generaba con `randomBytes(16).toString('hex')`: 32
caracteres, sí, pero solo `0-9a-f`. El original era `get_random_string(32)`,
alfanumérico con mayúsculas y minúsculas (`?act=P4JHQDJey2jJDnEBnqUePI5O2qEFB1`).
- El aviso de cuenta creada era un genérico «Revisa tu correo», mientras que el
original decía qué cuenta se creó y a qué dirección fue el enlace. Se recupera
el formato de dos líneas (con id `create-response`, como el original).
El muestreo por rechazo del token de seguridad se sube a `lib/random-token.ts` y
lo comparten los dos generadores, que solo se diferencian en el alfabeto: letras
para el token que se teclea a mano, alfanumérico para el hash de la URL.
Verificado con 100.000 hashes: todos casan /^[A-Za-z0-9]{32}$/, salen los 62
caracteres y la desviación por carácter se queda en 1,3% (ruido).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -177,7 +177,8 @@
|
||||
"recruiter": "Recruiter (optional)",
|
||||
"submit": "Create account",
|
||||
"creating": "Creating…",
|
||||
"success": "The account has been created. Check your email to activate it.",
|
||||
"success": "The account '{email}' has been created.",
|
||||
"successActivation": "An activation link has been sent to {email}.",
|
||||
"missingFields": "Please fill in all fields.",
|
||||
"passwordMismatch": "Passwords do not match.",
|
||||
"passwordTooLong": "The password must not exceed 16 characters.",
|
||||
|
||||
@@ -177,7 +177,8 @@
|
||||
"recruiter": "Reclutante (opcional)",
|
||||
"submit": "Crear cuenta",
|
||||
"creating": "Creando…",
|
||||
"success": "La cuenta se ha creado. Revisa tu correo para activarla.",
|
||||
"success": "La cuenta '{email}' ha sido creada.",
|
||||
"successActivation": "Se ha enviado un enlace de activación al correo {email}.",
|
||||
"missingFields": "Por favor, complete todos los campos.",
|
||||
"passwordMismatch": "Las contraseñas no coinciden.",
|
||||
"passwordTooLong": "La contraseña no debe exceder los 16 caracteres.",
|
||||
|
||||
Reference in New Issue
Block a user