usermod/Router/AppRouter.py

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/user_mod/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}