2023-11-14 17:54:56 +01:00
|
|
|
from django.conf import settings
|
|
|
|
from ninja import Router as APIRouter
|
|
|
|
from ninja import Schema
|
|
|
|
|
2023-11-19 00:12:10 +01:00
|
|
|
from c3nav.api.utils import NonEmptyStr
|
|
|
|
|
2023-11-14 17:54:56 +01:00
|
|
|
auth_api_router = APIRouter(tags=["auth"])
|
|
|
|
|
|
|
|
|
|
|
|
class APITokenSchema(Schema):
|
2023-11-19 00:12:10 +01:00
|
|
|
"""
|
|
|
|
An API token to be used with Bearer authentication
|
|
|
|
"""
|
|
|
|
token: NonEmptyStr
|
2023-11-14 17:54:56 +01:00
|
|
|
|
|
|
|
|
2023-11-14 18:29:21 +01:00
|
|
|
@auth_api_router.get('/session/', response=APITokenSchema, auth=None,
|
2023-11-14 17:54:56 +01:00
|
|
|
summary="Get session API token")
|
|
|
|
def session_token(request):
|
2023-11-14 18:29:21 +01:00
|
|
|
session_id = request.COOKIES.get(settings.SESSION_COOKIE_NAME, None)
|
|
|
|
return {"token": "anonymous" if session_id is None else f"session:{session_id}"}
|