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

19 lines
623 B
Python

from core.secrets import generate_pair, hash_refresh_token
from db.models import Session
from repositories.sessions import SessionsRepository
from schemas.dto import KeyPair
from schemas.providers import ProvidersType
async def refresh_token_rotation(
sessions_repo: SessionsRepository, old_token: Session, iss: ProvidersType
) -> KeyPair:
user = old_token.user
await sessions_repo.revoke(old_token.id)
key_pair = generate_pair(user.id, iss=iss)
refresh_token_hash = hash_refresh_token(key_pair.refresh_token)
await sessions_repo.create(user.id, refresh_token_hash, iss=iss)
return key_pair