feat: first commit, auth
This commit is contained in:
18
services/sessions.py
Normal file
18
services/sessions.py
Normal file
@@ -0,0 +1,18 @@
|
||||
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
|
||||
Reference in New Issue
Block a user