Новый правила валидации пароля
This commit is contained in:
parent
691521739c
commit
da261fcf9f
1 changed files with 25 additions and 0 deletions
|
|
@ -2,6 +2,23 @@ import type { APIRoute } from 'astro';
|
||||||
import { pb } from '../../../lib/pb';
|
import { pb } from '../../../lib/pb';
|
||||||
import { sendEmail, generateVerifyEmailHtml, getSiteUrl } from '../../../lib/email';
|
import { sendEmail, generateVerifyEmailHtml, getSiteUrl } from '../../../lib/email';
|
||||||
|
|
||||||
|
const PASSWORD_MIN_LENGTH = 8;
|
||||||
|
const PASSWORD_MAX_LENGTH = 12;
|
||||||
|
const PASSWORD_REGEX = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d_!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]+$/;
|
||||||
|
|
||||||
|
function validatePassword(password: string): { valid: boolean; error?: string } {
|
||||||
|
if (!password || password.length < PASSWORD_MIN_LENGTH) {
|
||||||
|
return { valid: false, error: 'Пароль должен быть не менее 8 символов' };
|
||||||
|
}
|
||||||
|
if (password.length > PASSWORD_MAX_LENGTH) {
|
||||||
|
return { valid: false, error: 'Пароль не должен превышать 12 символов' };
|
||||||
|
}
|
||||||
|
if (!PASSWORD_REGEX.test(password)) {
|
||||||
|
return { valid: false, error: 'Пароль должен содержать хотя бы одну букву и одну цифру' };
|
||||||
|
}
|
||||||
|
return { valid: true };
|
||||||
|
}
|
||||||
|
|
||||||
export const POST: APIRoute = async ({ request, redirect }) => {
|
export const POST: APIRoute = async ({ request, redirect }) => {
|
||||||
try {
|
try {
|
||||||
const data = await request.json();
|
const data = await request.json();
|
||||||
|
|
@ -17,6 +34,14 @@ export const POST: APIRoute = async ({ request, redirect }) => {
|
||||||
}), { status: 400 });
|
}), { status: 400 });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const passwordValidation = validatePassword(password);
|
||||||
|
if (!passwordValidation.valid) {
|
||||||
|
return new Response(JSON.stringify({
|
||||||
|
success: false,
|
||||||
|
error: passwordValidation.error
|
||||||
|
}), { status: 400 });
|
||||||
|
}
|
||||||
|
|
||||||
// Создаём пользователя
|
// Создаём пользователя
|
||||||
const record = await pb.collection('users').create({
|
const record = await pb.collection('users').create({
|
||||||
firstName,
|
firstName,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue