11#!/usr/bin/env python3
22# -*- coding: utf-8 -*-
33from datetime import datetime
4- from typing import NoReturn
54
65from fastapi import Request
76from fastapi .security import OAuth2PasswordRequestForm
1615from backend .app .core .conf import settings
1716from backend .app .crud .crud_user import UserDao
1817from backend .app .database .db_mysql import async_db_session
18+ from backend .app .models import User
1919from backend .app .schemas .user import AuthLogin
2020from backend .app .services .login_log_service import LoginLogService
2121from backend .app .utils .timezone import timezone
2424class AuthService :
2525 login_time = timezone .now ()
2626
27- async def swagger_login (self , * , form_data : OAuth2PasswordRequestForm ):
27+ async def swagger_login (self , * , form_data : OAuth2PasswordRequestForm ) -> tuple [ str , User ] :
2828 async with async_db_session () as db :
2929 current_user = await UserDao .get_by_username (db , form_data .username )
3030 if not current_user :
@@ -41,7 +41,9 @@ async def swagger_login(self, *, form_data: OAuth2PasswordRequestForm):
4141 access_token , _ = await jwt .create_access_token (str (user .id ), multi_login = user .is_multi_login )
4242 return access_token , user
4343
44- async def login (self , * , request : Request , obj : AuthLogin , background_tasks : BackgroundTasks ):
44+ async def login (
45+ self , * , request : Request , obj : AuthLogin , background_tasks : BackgroundTasks
46+ ) -> tuple [str , str , datetime , datetime , User ]:
4547 async with async_db_session () as db :
4648 try :
4749 current_user = await UserDao .get_by_username (db , obj .username )
@@ -115,7 +117,7 @@ async def new_token(*, request: Request, refresh_token: str) -> tuple[str, str,
115117 return new_access_token , new_refresh_token , new_access_token_expire_time , new_refresh_token_expire_time
116118
117119 @staticmethod
118- async def logout (* , request : Request ) -> NoReturn :
120+ async def logout (* , request : Request ) -> None :
119121 token = await get_token (request )
120122 if request .user .is_multi_login :
121123 key = f'{ settings .TOKEN_REDIS_PREFIX } :{ request .user .id } :{ token } '
0 commit comments