Skip to content

Commit 1d633e1

Browse files
perf: Token expired message
1 parent a3cf05c commit 1d633e1

File tree

3 files changed

+19
-13
lines changed

3 files changed

+19
-13
lines changed

backend/apps/system/middleware/auth.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,11 @@ async def validateToken(self, token: Optional[str], trans: I18n):
6161
schema, param = get_authorization_scheme_param(token)
6262
if schema.lower() != "bearer":
6363
return False, f"Token schema error!"
64-
payload = jwt.decode(
65-
param, settings.SECRET_KEY, algorithms=[security.ALGORITHM]
66-
)
67-
token_data = TokenPayload(**payload)
6864
try:
65+
payload = jwt.decode(
66+
param, settings.SECRET_KEY, algorithms=[security.ALGORITHM]
67+
)
68+
token_data = TokenPayload(**payload)
6969
with Session(engine) as session:
7070
session_user = await get_user_info(session = session, user_id = token_data.id)
7171
if not session_user:
@@ -80,7 +80,10 @@ async def validateToken(self, token: Optional[str], trans: I18n):
8080
raise Exception(message)
8181
return True, session_user
8282
except Exception as e:
83-
SQLBotLogUtil.exception(f"Token validation error: {str(e)}")
83+
msg = str(e)
84+
SQLBotLogUtil.exception(f"Token validation error: {msg}")
85+
if 'expired' in msg:
86+
return False, jwt.ExpiredSignatureError(trans('i18n_permission.token_expired'))
8487
return False, e
8588

8689

@@ -90,13 +93,14 @@ async def validateAssistant(self, assistantToken: Optional[str]) -> tuple[any]:
9093
schema, param = get_authorization_scheme_param(assistantToken)
9194
if schema.lower() != "assistant":
9295
return False, f"Token schema error!"
93-
payload = jwt.decode(
94-
param, settings.SECRET_KEY, algorithms=[security.ALGORITHM]
95-
)
96-
token_data = TokenPayload(**payload)
97-
if not payload['assistant_id']:
98-
return False, f"Miss assistant payload error!"
96+
9997
try:
98+
payload = jwt.decode(
99+
param, settings.SECRET_KEY, algorithms=[security.ALGORITHM]
100+
)
101+
token_data = TokenPayload(**payload)
102+
if not payload['assistant_id']:
103+
return False, f"Miss assistant payload error!"
100104
with Session(engine) as session:
101105
""" session_user = await get_user_info(session = session, user_id = token_data.id)
102106
session_user = UserInfoDTO.model_validate(session_user) """

backend/locales/en.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
"i18n_permission": {
2626
"only_admin": "Only administrators can call this!",
2727
"no_permission": "No permission to access {url}{msg}",
28-
"authenticate_invalid": "Authenticate invalid [{msg}]"
28+
"authenticate_invalid": "Authenticate invalid [{msg}]",
29+
"token_expired": "Token has expired"
2930
},
3031
"i18n_llm": {
3132
"validate_error": "Validation failed [{msg}]",

backend/locales/zh-CN.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
"i18n_permission": {
2626
"only_admin": "仅支持管理员调用!",
2727
"no_permission": "无权调用{url}{msg}",
28-
"authenticate_invalid": "认证无效【{msg}】"
28+
"authenticate_invalid": "认证无效【{msg}】",
29+
"token_expired": "Token 已过期"
2930

3031
},
3132
"i18n_llm": {

0 commit comments

Comments
 (0)