Files
sdb-back/app/services/token_service.py

31 lines
1.1 KiB
Python

"""JWT token service using Flask-JWT-Extended."""
from typing import Any
from flask_jwt_extended import create_access_token, create_refresh_token
class TokenService:
"""Service for handling JWT tokens using Flask-JWT-Extended."""
def generate_access_token(self, user_data: dict[str, Any]) -> str:
"""Generate an access token for the user."""
return create_access_token(
identity=user_data["id"],
additional_claims={
"email": user_data["email"],
"name": user_data["name"],
"picture": user_data.get("picture"),
"role": user_data.get("role"),
"is_active": user_data.get("is_active"),
"provider": user_data.get("provider"),
"providers": user_data.get("providers", []),
"plan": user_data.get("plan"),
"credits": user_data.get("credits"),
},
)
def generate_refresh_token(self, user_data: dict[str, Any]) -> str:
"""Generate a refresh token for the user."""
return create_refresh_token(identity=user_data["id"])