From 0cdcdeed262778ee9313481daa22ce129998ca9b Mon Sep 17 00:00:00 2001 From: Pine Date: Wed, 26 Aug 2026 12:25:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(auth):=20=E5=85=B3=E9=97=AD=E6=89=80?= =?UTF-8?q?=E6=9C=89=E5=BE=AE=E4=BF=A1=E7=99=BB=E5=BD=95(=E5=BC=80?= =?UTF-8?q?=E6=94=BE=E5=B9=B3=E5=8F=B0=E6=89=AB=E7=A0=81)=EF=BC=8C?= =?UTF-8?q?=E5=8F=AA=E4=BF=9D=E7=95=99=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=99=BB?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - AUTH_WECHAT_QR 默认 false(禁用微信扫码OAuth); AUTH_WECHAT_LOGIN 默认 true(小程序登录开启) - mp-qr/start 改挂 AUTH_WECHAT_LOGIN(小程序); /auth/status login_modes 不含 wechat --- app/api/routers/auth.py | 4 ++-- app/config.py | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/api/routers/auth.py b/app/api/routers/auth.py index b753f26..a1c8a3c 100644 --- a/app/api/routers/auth.py +++ b/app/api/routers/auth.py @@ -756,8 +756,8 @@ async def mp_qr_start(request: Request, db: Database = Depends(get_db)): 未配置 WECHAT_APPID/SECRET 时退化为普通二维码(qr_url),仅支持「小程序内 scanCode 路径」,无法被微信自动拉起小程序。 """ - if not config.AUTH_WECHAT_QR: - raise HTTPException(status_code=503, detail="小程序扫码登录未开启") + if not config.AUTH_WECHAT_LOGIN: + raise HTTPException(status_code=503, detail="小程序登录未开启") if not config.AUTH_ENABLED: raise HTTPException(status_code=403, detail="认证未开启") scene = f"mp_{secrets.token_hex(10)}" # 3+20 = 23 字符 diff --git a/app/config.py b/app/config.py index 49e6f44..a886ed1 100644 --- a/app/config.py +++ b/app/config.py @@ -141,10 +141,11 @@ WECHAT_OPEN_SECRET = os.environ.get("PINEAGENTS_WECHAT_OPEN_SECRET", "") or WECH # 扫码登录授权后的回跳地址(须在开放平台后台配置为该 URL):默认服务端 /auth/wx-callback。 # 未设置时由前端 request.base_url 推导。 WECHAT_QR_REDIRECT_URI = os.environ.get("PINEAGENTS_WECHAT_QR_REDIRECT_URI", "") -# 扫码登录开关(true 才返回可用的 qr_start;false 时前端隐藏「微信扫码」入口) -AUTH_WECHAT_QR = os.environ.get("PINEAGENTS_WECHAT_QR", "true").strip().lower() in ("true", "1", "yes") -# 本期统一登录仅两模式(账号密码/手机号验证码);微信扫码预留后期,未开放(默认 False)。 -AUTH_WECHAT_LOGIN = os.environ.get("PINEAGENTS_WECHAT_LOGIN", "false").strip().lower() in ("true", "1", "yes") +# 微信开放平台「扫码登录」(网页/桌面微信扫码 OAuth):**默认关闭** —— 只保留小程序登录。 +# true 才返回可用的 /auth/wx-qr/start;false 时前端隐藏「微信扫码」入口。 +AUTH_WECHAT_QR = os.environ.get("PINEAGENTS_WECHAT_QR", "false").strip().lower() in ("true", "1", "yes") +# 小程序登录(wx.login code2session + 小程序码 mp-qr):**默认开启** —— 唯一保留的微信登录方式。 +AUTH_WECHAT_LOGIN = os.environ.get("PINEAGENTS_WECHAT_LOGIN", "true").strip().lower() in ("true", "1", "yes") # --------------------------------------------------------------------------- # 运行环境(生产/开发)—— 供业务判断与小程序码版本选择,亦在 /auth/status 回显以便确认