fix: improve registration error messages with specific validation feedback

Extract PocketBase validation errors (duplicate email/username/password)
and display them in Chinese. Also improve login error message.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
congsh
2026-04-17 22:35:22 +08:00
parent 83b7472594
commit d7f9c6860a
+9 -1
View File
@@ -42,7 +42,7 @@ export const useUserStore = defineStore('user', () => {
await pb.collection('users').authWithPassword(email, password)
await initUser()
} catch (error: any) {
throw new Error(error.message || '登录失败')
throw new Error('邮箱或密码错误')
} finally {
loading.value = false
}
@@ -55,6 +55,14 @@ export const useUserStore = defineStore('user', () => {
await pb.collection('users').create(data)
await login(data.email, data.password)
} catch (error: any) {
const validation = error?.data?.data || error?.data
if (validation) {
const messages: string[] = []
if (validation.email) messages.push('邮箱无效或已被使用')
if (validation.username) messages.push('用户名无效或已被使用')
if (validation.password) messages.push('密码不符合要求')
if (messages.length > 0) throw new Error(messages.join(''))
}
throw new Error(error.message || '注册失败')
} finally {
loading.value = false