feat: капча Google/Cloudflare, блокировка Яндекс SmartCaptcha
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -6,6 +6,7 @@ const { requireAuth } = require('../middleware/auth');
|
||||
const { requireCookieConsent } = require('../middleware/cookieConsent');
|
||||
const { ROLES } = require('../constants/roles');
|
||||
const { asyncHandler } = require('../utils/asyncHandler');
|
||||
const { verifyCaptcha } = require('../services/captcha');
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
@@ -28,6 +29,15 @@ router.post(
|
||||
const { name, email, password, password2 } = req.body;
|
||||
const values = { name, email };
|
||||
|
||||
const captchaCheck = await verifyCaptcha(req);
|
||||
if (!captchaCheck.ok) {
|
||||
return res.status(400).render('register', {
|
||||
title: 'Регистрация',
|
||||
error: captchaCheck.error,
|
||||
values,
|
||||
});
|
||||
}
|
||||
|
||||
if (!name?.trim() || !email?.trim() || !password) {
|
||||
return res.status(400).render('register', {
|
||||
title: 'Регистрация',
|
||||
@@ -90,6 +100,16 @@ router.post(
|
||||
const next = req.body.next || '/';
|
||||
const values = { email };
|
||||
|
||||
const captchaCheck = await verifyCaptcha(req);
|
||||
if (!captchaCheck.ok) {
|
||||
return res.status(400).render('login', {
|
||||
title: 'Вход',
|
||||
error: captchaCheck.error,
|
||||
next,
|
||||
values,
|
||||
});
|
||||
}
|
||||
|
||||
const { rows } = await query('SELECT * FROM users WHERE email = $1', [
|
||||
(email || '').trim().toLowerCase(),
|
||||
]);
|
||||
|
||||
@@ -6,6 +6,7 @@ const { getCart, cartCount } = require('../cart');
|
||||
const { formatPrice } = require('../db');
|
||||
const { requireCookieConsent } = require('../middleware/cookieConsent');
|
||||
const { asyncHandler } = require('../utils/asyncHandler');
|
||||
const { verifyCaptcha } = require('../services/captcha');
|
||||
const { sendPasswordResetEmail, siteUrl } = require('../services/mail');
|
||||
|
||||
const router = express.Router();
|
||||
@@ -39,6 +40,16 @@ router.post(
|
||||
const genericSuccess =
|
||||
'Если аккаунт с таким email существует, мы отправили ссылку для сброса пароля.';
|
||||
|
||||
const captchaCheck = await verifyCaptcha(req);
|
||||
if (!captchaCheck.ok) {
|
||||
return res.status(400).render('auth/forgot-password', {
|
||||
title: 'Сброс пароля',
|
||||
error: captchaCheck.error,
|
||||
success: null,
|
||||
values,
|
||||
});
|
||||
}
|
||||
|
||||
if (!email) {
|
||||
return res.status(400).render('auth/forgot-password', {
|
||||
title: 'Сброс пароля',
|
||||
|
||||
Reference in New Issue
Block a user