"""门户进入文档库。""" from fastapi import APIRouter, Depends from app.core.auth import get_current_user from app.core.response import error_response, success_response from app.services.doclib_sso import consume_ticket, open_session router = APIRouter(tags=["文档库"]) @router.post("/web/doclib/sso") def doclib_sso(user: dict = Depends(get_current_user)): """当前门户用户换取文档库一次性进入地址。所有已登录角色都可调用。""" try: data = open_session(user["user_id"], user.get("real_name") or user.get("username") or "") except Exception as exc: return error_response(502, str(exc) or "无法连接文档库") return success_response(data) @router.get("/public/doclib/exchange") def doclib_exchange(code: str = ""): """文档库页面用一次性票据换登录会话。票据 60 秒内只能用一次。""" login = consume_ticket(code) if not login: return error_response(400, "进入票据无效或已过期") return success_response(login)