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") |