"""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"])