usermod/Router/AppRouter.py

43 lines
1.3 KiB
Python
Raw Normal View History

2023-02-14 14:06:25 +08:00
from fastapi import APIRouter, Depends, HTTPException
from jose import JWTError
from sqlalchemy.orm import Session
from Crud import AppCrud
2023-02-08 14:57:18 +08:00
from Schemas import AppSchemas
2023-02-14 14:06:25 +08:00
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)):
2023-02-14 15:47:18 +08:00
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="应用未激活")
2023-02-14 14:06:25 +08:00
try:
data = decode_token(token_data.user_token, app.token_key)
except JWTError:
raise HTTPException(status_code=403, detail="没有权限")
return data
2023-02-08 14:57:18 +08:00
router = APIRouter(
tags=["应用服务接口"],
2023-02-20 14:55:25 +08:00
prefix="/api/user_mod/app",
2023-02-10 09:15:17 +08:00
# dependencies=[Depends(admin_auth_token_depend)]
2023-02-08 14:57:18 +08:00
)
2023-02-08 15:40:03 +08:00
# 获取用户基本信息
2023-02-09 16:10:25 +08:00
@router.post("/get_user_base_info", response_model=AppSchemas.UserBaseInfo, summary="获取用户基本信息")
2023-02-08 15:40:03 +08:00
def get_user_base_info(payload=Depends(app_auth_token_depend)):
return AppSchemas.UserBaseInfo(**payload)
2023-02-14 14:06:25 +08:00
# 用户授权登录
2023-02-14 14:06:25 +08:00
@router.post("/check_token", summary="验证token是否有效")
def check_token(payload=Depends(app_auth_token_depend)):
return {'msg': "token有效", 'state': 1}
2023-02-15 17:03:04 +08:00