This commit is contained in:
2026-09-01 11:00:13 +05:00
parent 5d722e0f0e
commit cbefcdd4cb
3 changed files with 10 additions and 8 deletions

View File

@@ -29,12 +29,12 @@ function sendMail({ to, subject, text }) {
.finally(() => transporter.close());
}
function sendVerificationCode(email, code) {
console.log(`[register] код для ${email}: ${code}`);
function sendVerificationCode(email, code, codeNumber) {
console.log(`[register] код №${codeNumber} для ${email}: ${code}`);
return sendMail({
to: email,
subject: 'Код подтверждения регистрации',
text: `Ваш код подтверждения регистрации: ${code}\n\nКод действителен 10 минут.`
subject: `Код подтверждения №${codeNumber}`,
text: `Ваш код подтверждения №${codeNumber}: ${code}\n\nКод действителен 10 минут.`
});
}

View File

@@ -47,10 +47,10 @@ router.post('/send-code', async (req, res) => {
return res.status(429).json({ success: false, error: 'Код уже отправлен, подождите 30 секунд' });
}
try {
const { code } = requests.issueCode(email);
await mailer.sendVerificationCode(email, code);
const { code, codeNumber } = requests.issueCode(email);
await mailer.sendVerificationCode(email, code, codeNumber);
lastSendAt.set(String(email).toLowerCase(), Date.now());
res.json({ success: true, message: 'Код отправлен на указанную почту' });
res.json({ success: true, codeNumber, message: `Код №${codeNumber} отправлен на указанную почту. Введите код из письма с номером ${codeNumber}.` });
} catch (err) {
errorResponse(res, err);
}

View File

@@ -130,12 +130,14 @@ function issueCode(email) {
};
}
const code = String(Math.floor(100000 + Math.random() * 900000));
const codeNumber = 1 + Math.floor(Math.random() * 4094);
record.codeHash = crypto.createHash('sha256').update(code).digest('hex');
record.codeExpiresAt = Date.now() + CODE_TTL_MS;
record.codeNumber = codeNumber;
record.attempts = 0;
record.emailVerified = false;
saveRequest(record);
return { record, code };
return { record, code, codeNumber };
}
function verifyCode(email, code) {