This commit is contained in:
zjf committed 2026-05-08 23:56:46 +08:00
1 parent 26fc9d27ed
commit df64d5cbc3
1 file changed
+14 -3
+14 -3
View File
@@ -222,12 +222,17 @@ const autoLogin = async (): Promise<boolean> => {
function isZzdNeedSmsVerify(data: unknown): data is { needSmsVerify: true; bindSessionId: string; displayName?: string } {
if (!data || typeof data !== "object") return false
const o = data as Record<string, unknown>
return o.needSmsVerify === true && typeof o.bindSessionId === "string"
const need =
o.needSmsVerify === true || o.needSmsVerify === "true" || o.needSmsVerify === 1 || o.needSmsVerify === "1"
const sid = o.bindSessionId
const sidStr = typeof sid === "string" ? sid : sid != null ? String(sid) : ""
return need && sidStr.length > 0
}
function goZzdSmsVerify(data: { bindSessionId: string; displayName?: string }) {
const sid = typeof data.bindSessionId === "string" ? data.bindSessionId : String(data.bindSessionId || "")
const name = typeof data.displayName === "string" ? data.displayName : ""
const q = `bindSessionId=${encodeURIComponent(data.bindSessionId)}&displayName=${encodeURIComponent(name)}`
const q = `bindSessionId=${encodeURIComponent(sid)}&displayName=${encodeURIComponent(name)}`
uni.reLaunch({ url: `/pages/user/zzdSmsVerify?${q}` })
}
@@ -252,9 +257,14 @@ async function zzdLoginCore(): Promise<"ok" | "sms" | "failed"> {
const res: any = await userApi.auth({ authCode })
if (res?.code == 0) {
if (isZzdNeedSmsVerify(res.data)) {
goZzdSmsVerify(res.data)
goZzdSmsVerify(res.data as { bindSessionId: string; displayName?: string })
return "sms"
}
const d = res.data
if (!d || typeof d !== "object" || (!d.accessToken && !d.refreshToken)) {
uni.showToast({ title: "登录返回数据异常,请重试", icon: "none", duration: 4000 })
return "failed"
}
uni.setStorageSync(TOKEN_KEY, res.data)
const { data: userData } = await userApi.userInfo()
uni.setStorageSync(USER_INFO_KEY, userData)
@@ -263,6 +273,7 @@ async function zzdLoginCore(): Promise<"ok" | "sms" | "failed"> {
if (res?.msg) {
uni.showToast({ title: res.msg, icon: "none", duration: 4000 })
}
return "failed"
} catch (e) {
console.warn("[loginByZzd] authCode 登录未成功,尝试 uabaseToken", e)
}