修复认证:隔离实名认证内容并处理二维码图片失败

This commit is contained in:
cieanyau committed 2026-11-07 04:00:10 +08:00
1 parent 9b8124a4ea
commit b3a66d97c8
3 files changed
+264 -5

No files matched your search

+41 -5
View File
@@ -123,6 +123,7 @@ var fe = {
(e.preventDefault(), (N.value = t[r]), F.value[N.value]?.focus());
}
let I = ref(null),
imageReady = ref(!1),
L = ref(!1),
R = ref(!1),
z = ref(``),
@@ -158,6 +159,8 @@ var fe = {
const attempt = C.prepareLogin();
loginAttempt = attempt;
(Z(),
(I.value = null),
(imageReady.value = !1),
(z.value = ``),
(R.value = !1),
(B.value = []),
@@ -178,7 +181,7 @@ var fe = {
!t.token
)
throw Error(`二维码加载失败,请重新获取`);
((I.value = t), (z.value = ``), Ee());
((I.value = t), (z.value = ``));
} catch (t) {
if (e !== K || !attempt.isCurrent()) return;
(J(),
@@ -188,6 +191,26 @@ var fe = {
e === K && (L.value = !1);
}
}
// 接口返回地址并不代表图片可扫码;只有当前图片解码成功才启动登录轮询。
function qrImageLoaded(generation) {
if (
generation !== K ||
L.value ||
imageReady.value ||
!I.value ||
!loginAttempt?.isCurrent()
)
return;
((imageReady.value = !0), Ee());
}
function qrImageFailed(generation) {
if (generation !== K || !I.value || !loginAttempt?.isCurrent())
return;
// 图片失败废弃整个扫码代次,迟到的状态响应不能再登录或转入绑定。
(Q(),
(R.value = !0),
(z.value = `二维码图片加载失败,请刷新后重试`));
}
async function De() {
// 同一代次最多一个查询在途;Wait/Success/Expired/SelectClient/WaitBind 分别处理。
if (!I.value || q === K || !loginAttempt?.isCurrent()) return;
@@ -273,6 +296,7 @@ var fe = {
(K++,
Z(),
(I.value = null),
(imageReady.value = !1),
(loginAttempt = null),
(L.value = !1),
(H.value = !1),
@@ -345,7 +369,8 @@ var fe = {
(n, r) => {
let a = radiobutton,
s = button,
u = message;
u = message,
imageGeneration = K;
return unref(k)
? (openBlock(),
createElementBlock(`aside`, fe, [
@@ -454,7 +479,9 @@ var fe = {
"qr-box-idle": !unref(I),
},
]),
"aria-busy": unref(L),
"aria-busy":
unref(L) ||
(!!unref(I) && !unref(imageReady)),
},
[
unref(I) && !unref(R)
@@ -462,7 +489,7 @@ var fe = {
createElementBlock(
`img`,
{
key: 0,
key: imageGeneration,
class: normalizeClass([
`qr-img`,
{
@@ -471,6 +498,14 @@ var fe = {
]),
src: unref(I).img_url,
alt: `微信扫码登录`,
onLoad: () =>
qrImageLoaded(
imageGeneration,
),
onError: () =>
qrImageFailed(
imageGeneration,
),
},
null,
10,
@@ -535,7 +570,8 @@ var fe = {
`p`,
ye,
toDisplayString(
unref(L) && !unref(I)
unref(L) ||
(unref(I) && !unref(imageReady))
? `二维码加载中…`
: unref(B).length
? `选择账号后继续登录`
+2
View File
@@ -2569,6 +2569,8 @@ var xe = {
{
key: 1,
srcdoc: unref(X),
// 认证插件只拥有自己的渲染环境,不能继承控制台身份或访问父页面。
sandbox: `allow-scripts`,
class: `auth-frame`,
title: `实名认证二维码`,
},