From f35da3ad60599243d78ac9d2d4f2e946836b9491 Mon Sep 17 00:00:00 2001 From: Karlcarlo Date: Fri, 31 Jul 2026 11:05:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20bridge=20=E5=A2=9E=E5=8A=A0=20requireAu?= =?UTF-8?q?th()=20=E6=8C=89=E9=9C=80=E8=A7=A6=E5=8F=91=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=8E=88=E6=9D=83=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/app/services/bridge.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/frontend/src/app/services/bridge.ts b/frontend/src/app/services/bridge.ts index 3ee3be6..abddfc0 100644 --- a/frontend/src/app/services/bridge.ts +++ b/frontend/src/app/services/bridge.ts @@ -92,6 +92,32 @@ const bridge = { title, }) }, + + /** + * 触发小程序授权登录(手机号/头像/昵称) + * H5 需要用户身份信息时调用,跳转小程序登录页 + * 登录完成后返回 web-view,小程序会刷新 H5 并带上新身份参数 + */ + requireAuth(opts?: { redirectUrl?: string }) { + const mp = getMiniProgram() + if (!mp) { + console.warn('[bridge.requireAuth] 不在小程序 web-view 环境中') + return + } + const loginPage = '/pages/users/wechat_login/index' + const redirectUrl = opts?.redirectUrl || window.location.href + console.log('[bridge.requireAuth] 跳转小程序登录页:', loginPage) + mp.navigateTo({ + url: loginPage, + success: () => { + // 记录返回地址,登录成功后回跳 + try { + window.sessionStorage.setItem('bridge_auth_back', redirectUrl) + } catch (e) { /* ignore */ } + }, + fail: (err: any) => console.warn('[bridge.requireAuth] 跳转失败:', err), + }) + }, } export default bridge