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-08 16:26: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
|
|
|
|
|
|
|
|
|
|
|
|