Skip to content

Commit c597d1f

Browse files
committed
ljs
1 parent ae615bd commit c597d1f

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/modules/auth/authService.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,22 @@ const authServiceModule: Module = {
5757
identifier,
5858
password,
5959
}: { identifier: string; password: string } = req.body;
60+
61+
const identifierRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$|^[a-zA-Z0-9]{3,20}$/;
62+
const passwordRegex = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/;
63+
6064
if (!identifier || !password) {
6165
return res.redirect('/login?err=missing_credentials');
6266
}
6367

68+
if (!identifierRegex.test(identifier)) {
69+
return res.redirect('/login?err=invalid_identifier');
70+
}
71+
72+
if (!passwordRegex.test(password)) {
73+
return res.redirect('/login?err=weak_password');
74+
}
75+
6476
try {
6577
const result = await handleLogin(identifier, password);
6678
if (result.success && result.user) {
@@ -87,11 +99,30 @@ const authServiceModule: Module = {
8799
router.post('/register', async (req: Request, res: Response) => {
88100
const { email, username, password } = req.body;
89101

102+
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
103+
const usernameRegex = /^[a-zA-Z0-9]{3,20}$/;
104+
const passwordRegex = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/;
105+
90106
if (!email || !username || !password) {
91107
res.redirect('/register?err=missing_credentials');
92108
return;
93109
}
94110

111+
if (!emailRegex.test(email)) {
112+
res.redirect('/register?err=invalid_email');
113+
return;
114+
}
115+
116+
if (!usernameRegex.test(username)) {
117+
res.redirect('/register?err=invalid_username');
118+
return;
119+
}
120+
121+
if (!passwordRegex.test(password)) {
122+
res.redirect('/register?err=weak_password');
123+
return;
124+
}
125+
95126
try {
96127
const existingUser = await prisma.users.findFirst({
97128
where: { OR: [{ email }, { username }] },

0 commit comments

Comments
 (0)