server: add /v1/me to get current user information

sub, email and email_verified
This commit is contained in:
2023-08-18 12:02:16 +02:00
parent 5c9adb2664
commit 2a3ad5657f
2 changed files with 30 additions and 7 deletions

View File

@@ -1,15 +1,17 @@
from contextlib import asynccontextmanager
import reflector.auth # noqa
import reflector.db # noqa
from fastapi import FastAPI from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware
from fastapi_pagination import add_pagination
from fastapi.routing import APIRoute from fastapi.routing import APIRoute
import reflector.db # noqa from fastapi_pagination import add_pagination
import reflector.auth # noqa from reflector.events import subscribers_shutdown, subscribers_startup
from reflector.views.rtc_offer import router as rtc_offer_router
from reflector.views.transcripts import router as transcripts_router
from reflector.events import subscribers_startup, subscribers_shutdown
from reflector.logger import logger from reflector.logger import logger
from reflector.settings import settings from reflector.settings import settings
from contextlib import asynccontextmanager from reflector.views.rtc_offer import router as rtc_offer_router
from reflector.views.transcripts import router as transcripts_router
from reflector.views.user import router as user_router
try: try:
import sentry_sdk import sentry_sdk
@@ -50,6 +52,7 @@ app.add_middleware(
# register views # register views
app.include_router(rtc_offer_router) app.include_router(rtc_offer_router)
app.include_router(transcripts_router, prefix="/v1") app.include_router(transcripts_router, prefix="/v1")
app.include_router(user_router, prefix="/v1")
add_pagination(app) add_pagination(app)

View File

@@ -0,0 +1,20 @@
from typing import Annotated, Optional
import reflector.auth as auth
from fastapi import APIRouter, Depends
from pydantic import BaseModel
router = APIRouter()
class UserInfo(BaseModel):
sub: str
email: Optional[str]
email_verified: Optional[bool]
@router.get("/me")
async def user_me(
user: Annotated[Optional[auth.UserInfo], Depends(auth.current_user_optional)],
) -> UserInfo | None:
return user