Source code for pyeudiw.satosa.frontends.openid4vci.models.authorization_response

from urllib.parse import urlencode
from uuid import uuid4

from pydantic import BaseModel, Field
from satosa.response import Redirect

from pyeudiw.tools.content_type import FORM_URLENCODED


[docs] class AuthorizationResponse(BaseModel): """ Represents an authorization response containing code, state, and issuer. Attributes: code (str): The authorization code to return. If not provided, a random UUID is used. """ code: str = Field(default_factory=lambda: str(uuid4())) state: str iss: str
[docs] def to_redirect_response(self, url: str) -> Redirect: """ Constructs a SATOSA Redirect response by encoding the current AuthorizationResponse fields as query parameters and appending them to the provided base URL. Args: url (str): The base redirect URI. Returns: Redirect: A SATOSA Redirect object containing the full redirect URI with parameters. """ return Redirect( f"{url}?{urlencode(self.model_dump())}", content=FORM_URLENCODED )