Bläddra i källkod

获取第三方token接口

zhangqian 1 år sedan
förälder
incheckning
84e62e4041
2 ändrade filer med 19 tillägg och 3 borttagningar
  1. 13 2
      app/api/auth.py
  2. 6 1
      app/models/token_model.py

+ 13 - 2
app/api/auth.py

@@ -1,10 +1,10 @@
 from fastapi import APIRouter, Depends
 from sqlalchemy.orm import Session
 
-from app.api import Response, pwd_context
+from app.api import Response, pwd_context, get_current_user
 from app.config.config import settings
 from app.models.base_model import get_db
-from app.models.token_model import upsert_token
+from app.models.token_model import upsert_token, get_token
 from app.models.user import UserCreate, LoginData
 from app.models.user_model import UserModel
 from app.service.auth import authenticate_user, create_access_token
@@ -76,3 +76,14 @@ async def login(login_data: LoginData, db: Session = Depends(get_db)):
         "username": user.username,
         "nickname": "",
     })
+
+
+@router.get("/token", response_model=Response)
+async def token_api(db: Session = Depends(get_db), current_user: UserModel = Depends(get_current_user)):
+    # 查询现有记录
+    token = get_token(db, current_user.id)
+    if token is None:
+        return Response(code=400, msg="token not found")
+    return Response(code=200, msg="success", data={
+        "ragflow_token": token.ragflow_token,
+    })

+ 6 - 1
app/models/token_model.py

@@ -1,6 +1,7 @@
 from datetime import datetime
+from typing import Type
 
-from sqlalchemy import Column, Integer, String, DateTime, Text
+from sqlalchemy import Column, Integer, DateTime, Text
 from sqlalchemy.orm import Session
 
 from app.models.base_model import Base
@@ -49,3 +50,7 @@ def upsert_token(db: Session, user_id: int, access_token: str, bisheng_token: st
     except Exception as e:
         # 异常处理
         db.rollback()  # 回滚事务
+
+
+def get_token(db: Session, user_id: int) -> Type[TokenModel] | None:
+    return db.query(TokenModel).filter_by(user_id=user_id).first()