43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
from fastapi import APIRouter, Depends, HTTPException
|
|
from jose import JWTError
|
|
from sqlalchemy.orm import Session
|
|
|
|
from Crud import AppCrud
|
|
from Schemas import AppSchemas
|
|
from Utils.AuthUtils import decode_token
|
|
from Utils.SqlAlchemyUtils import get_db
|
|
|
|
|
|
def app_auth_token_depend(token_data: AppSchemas.BaseAppTokenData, db: Session = Depends(get_db)):
|
|
print("token_data", token_data)
|
|
app = AppCrud.get_app_by_id(db, token_data.app_id)
|
|
if not app.allowed:
|
|
raise HTTPException(status_code=403, detail="应用未激活")
|
|
try:
|
|
data = decode_token(token_data.user_token, app.token_key)
|
|
except JWTError:
|
|
raise HTTPException(status_code=403, detail="没有权限")
|
|
return data
|
|
|
|
|
|
router = APIRouter(
|
|
tags=["应用服务接口"],
|
|
prefix="/api/app",
|
|
# dependencies=[Depends(admin_auth_token_depend)]
|
|
)
|
|
|
|
|
|
# 获取用户基本信息
|
|
@router.post("/get_user_base_info", response_model=AppSchemas.UserBaseInfo, summary="获取用户基本信息")
|
|
def get_user_base_info(payload=Depends(app_auth_token_depend)):
|
|
return AppSchemas.UserBaseInfo(**payload)
|
|
|
|
|
|
# 用户授权登录
|
|
@router.post("/check_token", summary="验证token是否有效")
|
|
def check_token(payload=Depends(app_auth_token_depend)):
|
|
return {'msg': "token有效", 'state': 1}
|
|
|
|
|
|
|