diff --git a/app/src/components/AuthenticationPart.vue b/app/src/components/AuthenticationPart.vue index 4f8c0be..cae5a94 100644 --- a/app/src/components/AuthenticationPart.vue +++ b/app/src/components/AuthenticationPart.vue @@ -57,25 +57,9 @@ async function check() { } } -async function handleSubmit() { - if (!isRegister.value) { - check() - return - } - // register +function handleRegister() { console.log('register', username.value, email.value, password.value) - api - .get('/auth/check', { - params: { username: username.value }, - }) - .then(() => { - // Username is available, now check if the email already exists - return api.get('/auth/check', { params: { email: email.value } }) - }) - .then(() => { - // Both username and email are available, proceed with registration - return register(username.value, email.value, password.value) - }) + register(username.value, email.value, password.value) .then((isSuccess) => { if (isSuccess) { success() @@ -102,6 +86,15 @@ async function handleSubmit() { }) } +async function handleSubmit() { + if (!isRegister.value) { + check() + return + } + // register + handleRegister() +} + const clearError = () => { errorMessage.value = '' } diff --git a/app/src/utils/auth.js b/app/src/utils/auth.js index 749f368..e8357bc 100644 --- a/app/src/utils/auth.js +++ b/app/src/utils/auth.js @@ -41,21 +41,14 @@ export const login = async (username, password) => { } export const register = async (username, email, password) => { - try { - const res = await api.post('/auth/register', { - username, - password, - email, - }) - const { token } = res.data - myToken.value = token - return true - } catch (err) { - if (err.response?.status === 409) { - return false - } - throw err - } + const res = await api.post('/auth/register', { + username, + password, + email, + }) + const { token } = res.data + myToken.value = token + return true } export const logout = () => { diff --git a/server/src/api/controllers/authController.js b/server/src/api/controllers/authController.js index b8c702d..803feba 100644 --- a/server/src/api/controllers/authController.js +++ b/server/src/api/controllers/authController.js @@ -67,13 +67,23 @@ export async function register(req, res, next) { }) return } - if (await User.exists({ $or: [{ username }, { email }] })) { + + if (await User.exists({ username })) { res.status(409).json({ - message: 'username or email already exists', + type: 'username', + message: 'username already exists', }) - console.log(await User.find({ $or: [{ username }, { email }] })) return } + + if (await User.exists({ email })) { + res.status(409).json({ + type: 'email', + message: 'username already exists', + }) + return + } + const user = new User({ username, email,