fix: fallback qdreader uid to cookie guid

This commit is contained in:
2026-05-17 16:47:16 +08:00
parent 2a7a4fea91
commit 11530c342d
4 changed files with 37 additions and 11 deletions
+12 -5
View File
@@ -129,22 +129,29 @@ function cookieToString(jar) {
return arr.join("; ")
}
function b64decode(s) {
s = String(s || "")
s = String(s || "").trim()
try { s = decodeURIComponent(s) } catch (e) {}
s = s.replace(/-/g, "+").replace(/_/g, "/")
while (s.length % 4) s += "="
try { if (typeof Buffer !== "undefined") return Buffer.from(s, "base64").toString("utf8") } catch (e) {}
try { return decodeURIComponent(escape(atob(s))) } catch (e) { return "" }
}
function isRealUid(uid) {
uid = String(uid === undefined || uid === null ? "" : uid).trim()
return /^\d{5,}$/.test(uid) ? uid : ""
}
function uidFromQDHeader(qdheader) {
var decoded = b64decode(qdheader)
var uid = decoded ? trim(decoded.split("|")[0] || "") : ""
return /^\d+$/.test(uid) ? uid : ""
return isRealUid(uid)
}
function extractUid(cookie) {
var jar = parseCookieString(cookie)
var uid = uidFromQDHeader(jar.QDHeader || jar.qdheader || jar.QDHEADER || "")
if (uid) return uid
if (jar.uid) return String(jar.uid)
if (jar.userid) return String(jar.userid)
return ""
uid = isRealUid(jar.uid || jar.userid || jar.userId || jar.UserId)
if (uid) return uid
return isRealUid(jar.ywguid || jar.gwguid || jar.guid)
}
function maskCookie(cookie) {
cookie = String(cookie || "")