Hoàn thành chức năng collaborative

This commit is contained in:
2026-04-01 14:58:17 +07:00
parent 89db1c7b5c
commit 9335e56322
13 changed files with 751 additions and 41 deletions
+14 -1
View File
@@ -1,4 +1,4 @@
from fastapi import APIRouter, Depends, HTTPException, Response, status
from fastapi import APIRouter, Cookie, Depends, HTTPException, Response, status
from sqlalchemy.orm import Session
import os
@@ -84,3 +84,16 @@ def logout(response: Response):
@router.get("/me", response_model=UserOut)
def me(current_user: User = Depends(get_current_user)):
return current_user
# ── GET /auth/token (return raw JWT for WebSocket auth) ─────────────────────
@router.get("/token")
def get_token(access_token: str | None = Cookie(default=None)):
"""
Returns the current JWT so the frontend can pass it as a WebSocket
query param (browsers can't send cookies on WS upgrade in all cases).
"""
if not access_token:
raise HTTPException(status_code=401, detail="Not authenticated.")
return {"access_token": access_token}