update: auth login with username or email

This commit is contained in:
2025-10-09 03:36:17 +07:00
parent fdeb8eb26d
commit 0ae2903035
3 changed files with 15 additions and 7 deletions

View File

@@ -1,6 +1,7 @@
const {
getUserByUserEmailDb,
createUserDb
createUserDb,
getUserByUsernameDb
} = require('../db/user.db');
const { hashPassword, comparePassword } = require('../helpers/hashPassword');
const { ErrorHandler } = require('../helpers/error');
@@ -46,10 +47,17 @@ class AuthService {
}
// Login
static async login({ email, password }) {
const user = await getUserByUserEmailDb(email);
static async login({ identifier, password }) {
let user;
if (identifier.includes('@')) {
user = await getUserByUserEmailDb(identifier);
} else {
user = await getUserByUsernameDb(identifier);
}
if (!user) {
throw new ErrorHandler(401, 'Invalid credentials');
throw new ErrorHandler(401, 'Invalid credentials')
}
const passwordMatch = await comparePassword(password, user.user_password);