1818from backend .app .admin .model import User
1919from backend .app .admin .schema .user import GetUserInfoWithRelationDetail
2020from backend .common .dataclasses import AccessToken , NewToken , RefreshToken , TokenPayload
21- from backend .common .exception . errors import AuthorizationError , TokenError
21+ from backend .common .exception import errors
2222from backend .core .conf import settings
2323from backend .database .db import async_db_session
2424from backend .database .redis import redis_client
@@ -80,11 +80,11 @@ def jwt_decode(token: str) -> TokenPayload:
8080 user_id = payload .get ('sub' )
8181 expire_time = payload .get ('exp' )
8282 if not user_id :
83- raise TokenError (msg = 'Token 无效' )
83+ raise errors . TokenError (msg = 'Token 无效' )
8484 except ExpiredSignatureError :
85- raise TokenError (msg = 'Token 已过期' )
85+ raise errors . TokenError (msg = 'Token 已过期' )
8686 except (JWTError , Exception ):
87- raise TokenError (msg = 'Token 无效' )
87+ raise errors . TokenError (msg = 'Token 无效' )
8888 return TokenPayload (id = int (user_id ), session_uuid = session_uuid , expire_time = expire_time )
8989
9090
@@ -160,7 +160,7 @@ async def create_new_token(user_id: str, refresh_token: str, multi_login: bool,
160160 """
161161 redis_refresh_token = await redis_client .get (f'{ settings .TOKEN_REFRESH_REDIS_PREFIX } :{ user_id } :{ refresh_token } ' )
162162 if not redis_refresh_token or redis_refresh_token != refresh_token :
163- raise TokenError (msg = 'Refresh Token 已过期,请重新登录' )
163+ raise errors . TokenError (msg = 'Refresh Token 已过期,请重新登录' )
164164 new_access_token = await create_access_token (user_id , multi_login , ** kwargs )
165165 return NewToken (
166166 new_access_token = new_access_token .access_token ,
@@ -191,7 +191,7 @@ def get_token(request: Request) -> str:
191191 authorization = request .headers .get ('Authorization' )
192192 scheme , token = get_authorization_scheme_param (authorization )
193193 if not authorization or scheme .lower () != 'bearer' :
194- raise TokenError (msg = 'Token 无效' )
194+ raise errors . TokenError (msg = 'Token 无效' )
195195 return token
196196
197197
@@ -207,18 +207,18 @@ async def get_current_user(db: AsyncSession, pk: int) -> User:
207207
208208 user = await user_dao .get_with_relation (db , user_id = pk )
209209 if not user :
210- raise TokenError (msg = 'Token 无效' )
210+ raise errors . TokenError (msg = 'Token 无效' )
211211 if not user .status :
212- raise AuthorizationError (msg = '用户已被锁定,请联系系统管理员' )
212+ raise errors . AuthorizationError (msg = '用户已被锁定,请联系系统管理员' )
213213 if user .dept_id :
214214 if not user .dept .status :
215- raise AuthorizationError (msg = '用户所属部门已被锁定,请联系系统管理员' )
215+ raise errors . AuthorizationError (msg = '用户所属部门已被锁定,请联系系统管理员' )
216216 if user .dept .del_flag :
217- raise AuthorizationError (msg = '用户所属部门已被删除,请联系系统管理员' )
217+ raise errors . AuthorizationError (msg = '用户所属部门已被删除,请联系系统管理员' )
218218 if user .roles :
219219 role_status = [role .status for role in user .roles ]
220220 if all (status == 0 for status in role_status ):
221- raise AuthorizationError (msg = '用户所属角色已被锁定,请联系系统管理员' )
221+ raise errors . AuthorizationError (msg = '用户所属角色已被锁定,请联系系统管理员' )
222222 return user
223223
224224
@@ -231,7 +231,7 @@ def superuser_verify(request: Request) -> bool:
231231 """
232232 superuser = request .user .is_superuser
233233 if not superuser or not request .user .is_staff :
234- raise AuthorizationError
234+ raise errors . AuthorizationError
235235 return superuser
236236
237237
@@ -246,10 +246,10 @@ async def jwt_authentication(token: str) -> GetUserInfoWithRelationDetail:
246246 user_id = token_payload .id
247247 redis_token = await redis_client .get (f'{ settings .TOKEN_REDIS_PREFIX } :{ user_id } :{ token_payload .session_uuid } ' )
248248 if not redis_token :
249- raise TokenError (msg = 'Token 已过期' )
249+ raise errors . TokenError (msg = 'Token 已过期' )
250250
251251 if token != redis_token :
252- raise TokenError (msg = 'Token 已失效' )
252+ raise errors . TokenError (msg = 'Token 已失效' )
253253
254254 cache_user = await redis_client .get (f'{ settings .JWT_USER_REDIS_PREFIX } :{ user_id } ' )
255255 if not cache_user :
0 commit comments