24 lines
822 B
Python
24 lines
822 B
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"),
|
|
},
|
|
)
|
|
|
|
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"]) |