From 0f62bfda21fbb723ee135a74a3da91e28f877759 Mon Sep 17 00:00:00 2001 From: Billy Bao Date: Thu, 16 Oct 2025 17:48:20 +0800 Subject: [PATCH] Feat: add forgot password reset (update naming style), solve #8547 (#10606) ### What problem does this PR solve? Feat: add forgot password reset (update naming style), solve #8547 ### Type of change - [X] New Feature (non-breaking change which adds functionality) --- api/apps/user_app.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/api/apps/user_app.py b/api/apps/user_app.py index 083ec30b6..ed9cabe1d 100644 --- a/api/apps/user_app.py +++ b/api/apps/user_app.py @@ -843,10 +843,10 @@ def set_tenant_info(): return server_error_response(e) -@manager.route("/forget/get-captcha", methods=["GET"]) # noqa: F821 -def forget_get_otp(): +@manager.route("/forget/captcha", methods=["GET"]) # noqa: F821 +def forget_get_captcha(): """ - GET /forget/get-captcha?email= + GET /forget/captcha?email= - Generate an image captcha and cache it in Redis under key captcha:{email} with TTL = OTP_TTL_SECONDS. - Returns the captcha as a PNG image. """ @@ -869,10 +869,10 @@ def forget_get_otp(): return Response(img_bytes, mimetype="image/png") -@manager.route("/forget/send-otp", methods=["POST"]) # noqa: F821 +@manager.route("/forget/otp", methods=["POST"]) # noqa: F821 def forget_send_otp(): """ - POST /forget/send-otp + POST /forget/otp - Verify the image captcha stored at captcha:{email} (case-insensitive). - On success, generate an email OTP (A–Z with length = OTP_LENGTH), store hash + salt (and timestamp) in Redis with TTL, reset attempts and cooldown, and send the OTP via email. """