Spaces:
Sleeping
Sleeping
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() | |
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") |