diff --git a/lib/mailer.js b/lib/mailer.js index ed6eabf..a904dcb 100644 --- a/lib/mailer.js +++ b/lib/mailer.js @@ -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 минут.` }); } diff --git a/lib/registerApi.js b/lib/registerApi.js index 4bea0aa..9bff4ae 100644 --- a/lib/registerApi.js +++ b/lib/registerApi.js @@ -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); } diff --git a/lib/requests.js b/lib/requests.js index 421bf61..21d6648 100644 --- a/lib/requests.js +++ b/lib/requests.js @@ -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) {