fix: 登录失败时无提示

This commit is contained in:
Junyan Qin
2024-11-20 21:03:02 +08:00
parent 753066ccb9
commit 6e9c213893
3 changed files with 13 additions and 6 deletions
+5 -1
View File
@@ -1,5 +1,6 @@
import quart import quart
import sqlalchemy import sqlalchemy
import argon2
from .. import group from .. import group
from .....persistence.entities import user from .....persistence.entities import user
@@ -32,7 +33,10 @@ class UserRouterGroup(group.RouterGroup):
async def _() -> str: async def _() -> str:
json_data = await quart.request.json json_data = await quart.request.json
token = await self.ap.user_service.authenticate(json_data['user'], json_data['password']) try:
token = await self.ap.user_service.authenticate(json_data['user'], json_data['password'])
except argon2.exceptions.VerifyMismatchError:
return self.fail(1, '用户名或密码错误')
return self.success(data={ return self.success(data={
'token': token 'token': token
+1 -2
View File
@@ -51,8 +51,7 @@ class UserService:
ph = argon2.PasswordHasher() ph = argon2.PasswordHasher()
if not ph.verify(user_obj.password, password): ph.verify(user_obj.password, password)
raise ValueError('密码错误')
return await self.generate_jwt_token(user_email) return await self.generate_jwt_token(user_email)
+7 -3
View File
@@ -47,17 +47,21 @@ const login = () => {
user: user.value, user: user.value,
password: password.value password: password.value
}).then(res => { }).then(res => {
if (res.data.data.token) { if (res.data.code == 0) {
emit('success', '登录成功') emit('success', '登录成功')
localStorage.setItem('user-token', res.data.data.token) localStorage.setItem('user-token', res.data.data.token)
setTimeout(() => { setTimeout(() => {
location.reload() location.reload()
}, 1000) }, 1000)
} else { } else {
emit('error', '登录失败') emit('error', res.data.msg)
} }
}).catch(err => { }).catch(err => {
emit('error', err.response.data.message) if (err.response.data.msg) {
emit('error', err.response.data.msg)
} else {
emit('error', '登录失败')
}
}) })
} }