20 lines
708 B
Python
20 lines
708 B
Python
import datetime
|
|
|
|
from config import Config
|
|
from core.models.auth.responses import LoginResponse
|
|
from core.models.message.db import MPProfile
|
|
from core.storage import auth_storage
|
|
from core.errors.errors import incorrect_login
|
|
import jwt
|
|
|
|
|
|
class Service:
|
|
async def login_user(self, username: str) -> LoginResponse:
|
|
user = await auth_storage.get_user(external_id=int(username))
|
|
if not user:
|
|
incorrect_login()
|
|
token = jwt.encode({'user_id': user.id,
|
|
"exp": (datetime.datetime.now() + datetime.timedelta(minutes=Config.token_lifetime)).timestamp()},
|
|
Config.secret, algorithm='HS256')
|
|
return LoginResponse(access_token=token)
|