Skip to content

Commit 58b24b6

Browse files
authored
Fix login log parameter error in task (#476)
1 parent a9b9b58 commit 58b24b6

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

backend/app/admin/service/auth_service.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from backend.app.admin.service.login_log_service import login_log_service
1414
from backend.common.enums import LoginLogStatusType
1515
from backend.common.exception import errors
16+
from backend.common.log import log
1617
from backend.common.response.response_code import CustomErrorCode
1718
from backend.common.security.jwt import (
1819
create_access_token,
@@ -23,7 +24,7 @@
2324
password_verify,
2425
)
2526
from backend.core.conf import settings
26-
from backend.database.db_mysql import async_db_session
27+
from backend.database.db_mysql import async_db_session, uuid4_str
2728
from backend.database.db_redis import redis_client
2829
from backend.utils.timezone import timezone
2930

@@ -52,44 +53,47 @@ async def login(
5253
self, *, request: Request, response: Response, obj: AuthLoginParam, background_tasks: BackgroundTasks
5354
) -> GetLoginToken:
5455
async with async_db_session.begin() as db:
56+
user = None
5557
try:
5658
user = await self.user_verify(db, obj.username, obj.password)
57-
user_id = user.id
58-
user_uuid = user.uuid
59-
username = user.username
6059
captcha_code = await redis_client.get(f'{admin_settings.CAPTCHA_LOGIN_REDIS_PREFIX}:{request.state.ip}')
6160
if not captcha_code:
6261
raise errors.AuthorizationError(msg='验证码失效,请重新获取')
6362
if captcha_code.lower() != obj.captcha.lower():
6463
raise errors.CustomError(error=CustomErrorCode.CAPTCHA_ERROR)
64+
user_id = user.id
6565
a_token = await create_access_token(str(user_id), user.is_multi_login)
6666
r_token = await create_refresh_token(str(user_id), user.is_multi_login)
6767
except errors.NotFoundError as e:
68+
log.error('登陆错误: 用户名不存在')
6869
raise errors.NotFoundError(msg=e.msg)
6970
except (errors.AuthorizationError, errors.CustomError) as e:
71+
if not user:
72+
log.error('登陆错误: 用户密码有误')
7073
task = BackgroundTask(
7174
login_log_service.create,
7275
**dict(
7376
db=db,
7477
request=request,
75-
user_uuid=user_uuid,
76-
username=username,
78+
user_uuid=user.uuid if user else uuid4_str(),
79+
username=obj.username,
7780
login_time=timezone.now(),
7881
status=LoginLogStatusType.fail.value,
7982
msg=e.msg,
8083
),
8184
)
8285
raise errors.AuthorizationError(msg=e.msg, background=task)
8386
except Exception as e:
87+
log.error(f'登陆错误: {e}')
8488
raise e
8589
else:
8690
background_tasks.add_task(
8791
login_log_service.create,
8892
**dict(
8993
db=db,
9094
request=request,
91-
user_uuid=user_uuid,
92-
username=username,
95+
user_uuid=user.uuid,
96+
username=obj.username,
9397
login_time=timezone.now(),
9498
status=LoginLogStatusType.success.value,
9599
msg='登录成功',

0 commit comments

Comments
 (0)