Files
ETB/ETB-API/venv/lib/python3.12/site-packages/drf_spectacular/authentication.py
Iliyan Angelov 6b247e5b9f Updates
2025-09-19 11:58:53 +03:00

43 lines
1.2 KiB
Python

from django.conf import settings
from drf_spectacular.extensions import OpenApiAuthenticationExtension
from drf_spectacular.plumbing import build_bearer_security_scheme_object
class SessionScheme(OpenApiAuthenticationExtension):
target_class = 'rest_framework.authentication.SessionAuthentication'
name = 'cookieAuth'
priority = -1
def get_security_definition(self, auto_schema):
return {
'type': 'apiKey',
'in': 'cookie',
'name': settings.SESSION_COOKIE_NAME,
}
class BasicScheme(OpenApiAuthenticationExtension):
target_class = 'rest_framework.authentication.BasicAuthentication'
name = 'basicAuth'
priority = -1
def get_security_definition(self, auto_schema):
return {
'type': 'http',
'scheme': 'basic',
}
class TokenScheme(OpenApiAuthenticationExtension):
target_class = 'rest_framework.authentication.TokenAuthentication'
name = 'tokenAuth'
match_subclasses = True
priority = -1
def get_security_definition(self, auto_schema):
return build_bearer_security_scheme_object(
header_name='Authorization',
token_prefix=self.target.keyword,
)