이메일 인증과 비밀번호 재설정 추가

This commit is contained in:
2026-06-25 12:02:44 +09:00
parent edf48e53a5
commit 35a2976182
26 changed files with 770 additions and 43 deletions

View File

@@ -160,10 +160,29 @@ export function createAdminRouter(db) {
const values = [nowIso()];
if (trimmedEmail) {
if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(trimmedEmail) || trimmedEmail.length > 254) {
return res.status(400).json({ error: '올바른 이메일 주소를 입력하세요.' });
}
fields.push('email = ?');
values.push(trimmedEmail);
}
if (trimmedUsername) {
if (
trimmedUsername.length < 2 ||
trimmedUsername.length > 30 ||
!/^[\p{L}\p{N}_-]+$/u.test(trimmedUsername)
) {
return res.status(400).json({
error: '사용자명은 2~30자의 한글·영문·숫자·밑줄·하이픈만 사용할 수 있습니다.',
});
}
const duplicate = db.prepare(`
SELECT id FROM users
WHERE username = ? COLLATE NOCASE AND id != ?
`).get(trimmedUsername, targetId);
if (duplicate) {
return res.status(409).json({ error: '이미 사용 중인 사용자명입니다.' });
}
fields.push('username = ?', 'display_name = ?');
values.push(trimmedUsername, trimmedUsername);
}