Source code for simple_openid_connect.integrations.djangorestframework.drf_spectacular_schema

"""
Automatic OpenAPI schema generation for drf_spectacular.
"""

from typing import TYPE_CHECKING, Any, Dict, List, Union

from drf_spectacular.extensions import OpenApiAuthenticationExtension

if TYPE_CHECKING:
    from drf_spectacular.openapi import AutoSchema

from ..django.apps import OpenidAppConfig
from .authentication import AccessTokenAuthentication


[docs] class AccessTokenScheme(OpenApiAuthenticationExtension): # type: ignore # ignore missing __init_subclass__ type target_class = AccessTokenAuthentication name = "openidAccessToken" def get_security_definition( self, auto_schema: "AutoSchema" ) -> Union[Dict[str, Any], List[Dict[str, Any]]]: return { "type": "openIdConnect", "description": "Authentication with OpenID Access token", "openIdConnectUrl": OpenidAppConfig.get_instance().safe_settings.OPENID_ISSUER + "/.well-known/openid-configuration", }