添加用户消息记录接口;
This commit is contained in:
114
backend/app/routes/auth_routes.py
Normal file
114
backend/app/routes/auth_routes.py
Normal file
@@ -0,0 +1,114 @@
|
||||
from fastapi import APIRouter, Depends, Request
|
||||
from typing import Dict
|
||||
from app.deps.auth_deps import get_valid_token, get_token_information, get_valid_ticket, get_ticket_information
|
||||
from app.services.auth_service import generate_signature
|
||||
|
||||
router = APIRouter(prefix="/auth", tags=["认证"])
|
||||
|
||||
|
||||
@router.get("/token")
|
||||
async def get_token(
|
||||
token: str = Depends(get_valid_token)
|
||||
) -> Dict:
|
||||
"""
|
||||
获取access_token
|
||||
"""
|
||||
return {
|
||||
"success": True,
|
||||
"access_token": token,
|
||||
"message": "获取token成功"
|
||||
}
|
||||
|
||||
|
||||
@router.get("/token/info")
|
||||
async def get_token_info(
|
||||
token_info: Dict = Depends(get_token_information)
|
||||
) -> Dict:
|
||||
"""
|
||||
获取token的详细信息
|
||||
包括获取时间、过期时间、剩余时间等
|
||||
"""
|
||||
return {
|
||||
"success": True,
|
||||
"data": token_info,
|
||||
"message": "获取token信息成功"
|
||||
}
|
||||
|
||||
|
||||
@router.get("/ticket")
|
||||
async def get_ticket(
|
||||
ticket: str = Depends(get_valid_ticket)
|
||||
) -> Dict:
|
||||
"""
|
||||
获取jsapi_ticket
|
||||
"""
|
||||
return {
|
||||
"success": True,
|
||||
"ticket": ticket,
|
||||
"message": "获取ticket成功"
|
||||
}
|
||||
|
||||
|
||||
@router.get("/ticket/info")
|
||||
async def get_ticket_info(
|
||||
ticket_info: Dict = Depends(get_ticket_information)
|
||||
) -> Dict:
|
||||
"""
|
||||
获取ticket的详细信息
|
||||
包括获取时间、过期时间、剩余时间等
|
||||
"""
|
||||
return {
|
||||
"success": True,
|
||||
"data": ticket_info,
|
||||
"message": "获取ticket信息成功"
|
||||
}
|
||||
|
||||
|
||||
@router.post("/signature")
|
||||
async def get_signature(request: Request) -> Dict:
|
||||
"""
|
||||
生成应用签名
|
||||
|
||||
请求参数:
|
||||
{
|
||||
"url": "当前页面完整URL",
|
||||
"timestamp": 时间戳(可选,秒),
|
||||
"nonceStr": "随机字符串(可选)"
|
||||
}
|
||||
"""
|
||||
try:
|
||||
# 解析请求体
|
||||
body = await request.json()
|
||||
url = body.get("url")
|
||||
|
||||
if not url:
|
||||
return {
|
||||
"success": False,
|
||||
"message": "缺少必要参数:url"
|
||||
}
|
||||
|
||||
timestamp = body.get("timestamp")
|
||||
nonce_str = body.get("nonceStr")
|
||||
|
||||
# 生成签名
|
||||
signature_data = generate_signature(
|
||||
url=url,
|
||||
timestamp=timestamp,
|
||||
nonce_str=nonce_str
|
||||
)
|
||||
|
||||
return {
|
||||
"success": True,
|
||||
"data": {
|
||||
"signature": signature_data["signature"],
|
||||
"timestamp": signature_data["timestamp"],
|
||||
"nonceStr": signature_data["nonceStr"]
|
||||
},
|
||||
"message": "签名生成成功"
|
||||
}
|
||||
|
||||
except Exception as e:
|
||||
return {
|
||||
"success": False,
|
||||
"message": f"生成签名失败: {str(e)}"
|
||||
}
|
||||
Reference in New Issue
Block a user