fix: user registration with email support
Some checks failed
docker-push / build-and-push (push) Failing after 18s
docker-push / deploy (push) Has been skipped

This commit is contained in:
SpecialX
2025-11-28 19:29:49 +08:00
parent 210e791f76
commit d2468e9fca
178 changed files with 39 additions and 579 deletions

View File

@@ -23,12 +23,23 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
return res.status(400).json({ success: false, error: 'Password must be at least 6 characters' });
}
if (email && !email.includes('@')) {
return res.status(400).json({ success: false, error: 'Invalid email format' });
}
// Check if username already exists
const existingUser = await UserService.getUserByUsername(username);
if (existingUser) {
return res.status(409).json({ success: false, error: 'Username already taken' });
}
if (email) {
const existingEmail = await UserService.getUserByEmail(email);
if (existingEmail) {
return res.status(409).json({ success: false, error: 'Email already registered' });
}
}
// Create new user
const user = await UserService.createUser(username, password, email);
@@ -45,6 +56,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
user: {
id: user.id,
username: user.username,
email: user.email,
avatarUrl: user.avatarUrl,
role: user.role,
status: user.status
@@ -53,7 +65,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
}
});
} catch (error) {
console.error('Registration error:', error);
console.error('Registration error details:', error);
return res.status(500).json({ success: false, error: 'Registration failed' });
}
}