Files
malenia-backend/services/users.py
2026-07-24 11:33:56 +07:00

23 lines
778 B
Python

from core.secrets import generate_pair, hash_refresh_token
from db.models.users import User
from repositories.sessions import SessionsRepository
from schemas.login import UserLogin
from schemas.providers import ProvidersType
from schemas.user import UserInfo
async def authorize_user(
sessions_repo: SessionsRepository, user: User, iss: ProvidersType
) -> UserLogin:
key_pair = generate_pair(user.id, iss)
refresh_token_hash = hash_refresh_token(key_pair.refresh_token)
await sessions_repo.create(user_id=user.id, refresh_token_hash=refresh_token_hash, iss=iss)
return UserLogin(
access_token=key_pair.access_token,
refresh_token=key_pair.refresh_token,
user=UserInfo(username=user.username, telegram_id=user.telegram_id),
)