49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
from typing import Any
|
|
|
|
from fastapi import APIRouter, Depends
|
|
|
|
from app import schemas
|
|
from app.core.security import verify_token
|
|
from app.helper.aliyun import AliyunHelper
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/qrcode", summary="生成二维码内容", response_model=schemas.Response)
|
|
def qrcode(_: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
|
"""
|
|
生成二维码
|
|
"""
|
|
qrcode_data, errmsg = AliyunHelper().generate_qrcode()
|
|
if qrcode_data:
|
|
return schemas.Response(success=True, data=qrcode_data)
|
|
return schemas.Response(success=False, message=errmsg)
|
|
|
|
|
|
@router.get("/check", summary="二维码登录确认", response_model=schemas.Response)
|
|
def check(ck: str, t: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
|
"""
|
|
二维码登录确认
|
|
"""
|
|
if not ck or not t:
|
|
return schemas.Response(success=False, message="参数错误")
|
|
data, errmsg = AliyunHelper().check_login(ck, t)
|
|
if data:
|
|
return schemas.Response(success=True, data=data)
|
|
return schemas.Response(success=False, message=errmsg)
|
|
|
|
|
|
@router.get("/userinfo", summary="查询用户信息", response_model=schemas.Response)
|
|
def userinfo(_: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
|
"""
|
|
查询用户信息
|
|
"""
|
|
aliyunhelper = AliyunHelper()
|
|
# 浏览一次文件确定token正确性
|
|
aliyunhelper.list_files()
|
|
# 查询用户信息返回
|
|
info = aliyunhelper.get_user_info()
|
|
if info:
|
|
return schemas.Response(success=True, data=info)
|
|
return schemas.Response(success=False)
|