unify single user and multi user behaviour

This commit is contained in:
Davide Scaini
2026-04-09 08:58:35 +02:00
parent 2007f53580
commit 98c42dc443
25 changed files with 678 additions and 232 deletions
+12 -9
View File
@@ -152,7 +152,7 @@ async def me(bincio_session: Optional[str] = Cookie(default=None)) -> JSONRespon
@app.post("/api/auth/login")
async def login(request: Request, response: Response) -> JSONResponse:
async def login(request: Request) -> JSONResponse:
ip = request.client.host if request.client else "unknown"
_check_rate_limit(ip)
@@ -165,22 +165,24 @@ async def login(request: Request, response: Response) -> JSONResponse:
raise HTTPException(401, "Invalid credentials")
token = create_session(_get_db(), handle)
_set_session_cookie(response, token)
return JSONResponse({"ok": True, "handle": user.handle, "display_name": user.display_name})
resp = JSONResponse({"ok": True, "handle": user.handle, "display_name": user.display_name})
_set_session_cookie(resp, token)
return resp
@app.post("/api/auth/logout")
async def logout(response: Response, bincio_session: Optional[str] = Cookie(default=None)) -> JSONResponse:
async def logout(bincio_session: Optional[str] = Cookie(default=None)) -> JSONResponse:
if bincio_session:
delete_session(_get_db(), bincio_session)
response.delete_cookie(_SESSION_COOKIE)
return JSONResponse({"ok": True})
resp = JSONResponse({"ok": True})
resp.delete_cookie(_SESSION_COOKIE)
return resp
# ── Registration ──────────────────────────────────────────────────────────────
@app.post("/api/register")
async def register(request: Request, response: Response) -> JSONResponse:
async def register(request: Request) -> JSONResponse:
body = await request.json()
code = body.get("code", "").strip().upper()
handle = body.get("handle", "").strip().lower()
@@ -207,8 +209,9 @@ async def register(request: Request, response: Response) -> JSONResponse:
(dd / handle / "edits").mkdir(parents=True, exist_ok=True)
token = create_session(_get_db(), handle)
_set_session_cookie(response, token)
return JSONResponse({"ok": True, "handle": handle})
resp = JSONResponse({"ok": True, "handle": handle})
_set_session_cookie(resp, token)
return resp
# ── Invites ───────────────────────────────────────────────────────────────────