From 43f5bee5b1313b2f0762655ce2f6cfe22ad98dfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Wed, 8 Apr 2026 02:07:57 +0800 Subject: [PATCH] =?UTF-8?q?fix(passport):=20=E8=A7=A3=E5=86=B3=E6=89=AB?= =?UTF-8?q?=E7=A0=81=E7=99=BB=E5=BD=95=E6=89=8B=E6=9C=BA=E5=8F=B7=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E9=80=BB=E8=BE=91=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加用户是否绑定手机号的判断逻辑 - 未绑定手机号时展示授权界面,避免直接登录 - 已绑定手机号时继续确认登录流程 - 优化用户信息保存时机和条件 - 调整控制台日志输出,明确用户状态反馈 --- .workbuddy/expert-history.json | 2 +- src/passport/qr-confirm/index.tsx | 22 +++++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/.workbuddy/expert-history.json b/.workbuddy/expert-history.json index 5f73fa1..ada1496 100644 --- a/.workbuddy/expert-history.json +++ b/.workbuddy/expert-history.json @@ -13,5 +13,5 @@ } ] }, - "lastUpdated": 1775584636978 + "lastUpdated": 1775585206027 } \ No newline at end of file diff --git a/src/passport/qr-confirm/index.tsx b/src/passport/qr-confirm/index.tsx index f872826..bc159ba 100644 --- a/src/passport/qr-confirm/index.tsx +++ b/src/passport/qr-confirm/index.tsx @@ -137,13 +137,25 @@ const QRConfirmPage: React.FC = () => { console.log('[QRConfirm] loginByOpenId 结果:', wxLoginResult); // 3. 判断用户是否存在 - if (wxLoginResult.success && wxLoginResult.data) { - // 用户已注册,保存用户信息并继续确认登录 - console.log('[QRConfirm] 用户已注册,开始确认登录...'); - setUserInfo(wxLoginResult.data.user); + if (wxLoginResult.success && wxLoginResult.data && wxLoginResult.data.user) { + // 用户已注册,检查是否绑定手机号 + const user = wxLoginResult.data.user; + console.log('[QRConfirm] 用户已注册:', user); + + // 如果用户没有手机号,需要授权绑定 + if (!user.phone || user.phone === '') { + console.log('[QRConfirm] 用户未绑定手机号,显示授权界面'); + setNeedAuth(true); + setLoading(false); + return; + } + + // 用户已绑定手机号,保存用户信息并继续确认登录 + console.log('[QRConfirm] 用户已绑定手机号,开始确认登录...'); + setUserInfo(user); // 调用确认登录 - await handleConfirmLogin(loginToken, wxLoginResult.data.user); + await handleConfirmLogin(loginToken, user); } else { // 用户未注册,显示手机号授权界面 console.log('[QRConfirm] 用户未注册,显示手机号授权界面');