Skip to content

Commit

Permalink
Merge pull request #1167 from microbiomedata/eecavanna/1163-display-a…
Browse files Browse the repository at this point in the history
…uth-token-in-a-persistent-endpoint

Implement API endpoint that returns client's session cookie
  • Loading branch information
eecavanna authored Mar 14, 2024
2 parents 49e7662 + 64ffa33 commit f6bfe8f
Showing 1 changed file with 24 additions and 1 deletion.
25 changes: 24 additions & 1 deletion nmdc_server/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from uuid import UUID

from fastapi import APIRouter, Depends, Header, HTTPException, Response, status
from fastapi.responses import JSONResponse
from fastapi.responses import JSONResponse, PlainTextResponse
from sqlalchemy.orm import Session
from starlette.requests import Request
from starlette.responses import RedirectResponse, StreamingResponse
Expand Down Expand Up @@ -57,6 +57,29 @@ async def my_orcid(request: Request, orcid: str = Depends(get_current_user_orcid
return orcid


@router.get(
"/session_cookie",
name="Get the session cookie",
tags=["user"],
responses={200: {"description": "Session cookie"}},
)
async def get_session_cookie(request: Request):
r"""
Returns the web browser's session cookie in plain text format.
Note: This endpoint does not require authentication, since the server is only
returning information sent to it by the client (verbatim).
"""
# Reference: https://fastapi.tiangolo.com/reference/request/#fastapi.Request.cookies
session_cookie = request.cookies.get("session", None)
if session_cookie is None:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail="Request did not contain a session cookie.",
)
return PlainTextResponse(content=session_cookie)


# autocomplete search
@router.get(
"/search",
Expand Down

0 comments on commit f6bfe8f

Please sign in to comment.