refactor: simplify register flow

This commit is contained in:
Lin, Hung-Shin committed 2023-09-15 15:50:36 +08:00
1 parent 5dd56308ce
commit a6d02f2616
3 files changed
+32 -36

No files matched your search

+11 -18
View File
@@ -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 = ''
}
+8 -15
View File
@@ -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 = () => {
+13 -3
View File
@@ -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,