api-mapper / routers /webtools_v1.py
tanbushi's picture
modify users, use cf db
f5cf708
from fastapi import FastAPI, APIRouter, Response, Depends
from captcha.image import ImageCaptcha
from io import BytesIO
router = APIRouter()
# 依赖注入,获取 FastAPI 应用实例
def get_app() -> FastAPI:
return FastAPI()
@router.get("/webtools/captcha")
async def get_captcha(app: FastAPI = Depends(get_app)):
# 生成随机验证码字符串
captcha_text = "123456" # 这里只是一个示例,实际应用中应该生成一个随机字符串
# 创建验证码图片
image = ImageCaptcha(width=280, height=90)
image.write(captcha_text, "captcha.png")
# 将验证码字符串存储在内存中,以便后续验证
# 注意:实际应用中应该使用更安全的方式存储验证码,例如使用会话或数据库
app.captcha_text = captcha_text
# 读取图片内容并返回
image_buffer = BytesIO()
image.write(captcha_text, image_buffer)
image_buffer.seek(0)
# 返回图片数据
return Response(content=image_buffer.getvalue(), media_type="image/png")