diff --git a/src/pages/login/index.tsx b/src/pages/login/index.tsx index b34baa7..572c11b 100644 --- a/src/pages/login/index.tsx +++ b/src/pages/login/index.tsx @@ -13,6 +13,8 @@ import { import { useToast } from '@/hooks/useToast' import { ROUTES } from '@/constants/routes' import { reLaunch } from '@/utils/navigation' +import { storage } from '@/utils/storage' +import { WX_OPENID_STORAGE_KEY } from '@/constants/auth' import styles from './index.module.scss' export default function Login() { @@ -34,7 +36,10 @@ export default function Login() { const state = getLoginSubState(result) if (state !== 'complete') { console.log('[login-page] 注册未完成,推进到', state) - if (result.openId) setOpenId(result.openId) + // noMobile 响应可能不回传 openId(首次 needUserInfo 已缓存本地),从 storage 兜底 + const openIdNext = result.openId ?? storage.get(WX_OPENID_STORAGE_KEY) ?? openId + if (!openIdNext) throw new Error('响应缺少 openId,无法继续授权') + setOpenId(openIdNext) setSubState(state) setLoading(false) return