From eac3691d0b70865501ba5b28e384f689032449dc Mon Sep 17 00:00:00 2001 From: BTMuli Date: Wed, 1 Oct 2025 11:10:12 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8D=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E8=A7=92=E8=89=B2=E5=AF=BC=E8=87=B4ck=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/TGClient.ts | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/src/utils/TGClient.ts b/src/utils/TGClient.ts index b8e2de84..bb608d82 100644 --- a/src/utils/TGClient.ts +++ b/src/utils/TGClient.ts @@ -1,8 +1,7 @@ /** * @file utils/TGClient.ts * @desc 负责米游社客户端的 callback 处理 - * @since Beta v0.7.6 - * @todo Cookie 切换异常 + * @since Beta v0.8.3 */ import showSnackbar from "@comp/func/snackbar.js"; @@ -535,7 +534,7 @@ class Client { /** * @func getCookieInfo - * @since Beta v0.3.9 + * @since Beta v0.8.3 * @desc 获取米游社客户端的 cookie * @param {TGApp.Plugins.JSBridge.NullArg} arg - 请求参数 * @returns {void} - 无返回值 @@ -543,13 +542,27 @@ class Client { async getCookieInfo(arg: TGApp.Plugins.JSBridge.NullArg): Promise { const user = useUserStore(); if (!user.cookie) return; + const executeJS = `javascript:(function(){ + let domainCur = window.location.hostname; + if (domainCur.endsWith('.miyoushe.com')) domainCur = '.miyoushe.com'; + else domainCur = '.mihoyo.com'; + document.cookie = 'account_id=${user.cookie!.account_id}; domain=' + domainCur + '; path=/; + document.cookie = 'account_id_v2=${user.cookie!.account_id}; domain=' + domainCur + '; path=/; + document.cookie = 'account_mid_v2=${user.cookie!.mid}; domain=' + domainCur + '; path=/; + document.cookie = 'cookie_token=${user.cookie!.cookie_token}; domain=' + domainCur + '; path=/; + document.cookie = 'ltmid_v2=${user.cookie!.mid}; domain=' + domainCur + '; path=/; + document.cookie = 'ltoken=${user.cookie!.ltoken}; domain=' + domainCur + '; path=/; + document.cookie = 'ltuid_v2=${user.cookie!.ltuid}; domain=' + domainCur + '; path=/; + })();`; + console.info(`[getCookieInfo] ${executeJS}`); + await core.invoke("execute_js", { label: "mhy_client", js: executeJS }); const data = { ltoken: user.cookie.ltoken, ltuid: user.cookie.ltuid, login_ticket: "" }; await this.callback(arg.callback, data); } /** * @func getCookieToken - * @since Beta v0.6.3 + * @since Beta v0.8.3 * @desc 获取米游社客户端的 cookie_token * @param {TGApp.Plugins.JSBridge.Arg} arg - 请求参数 * @returns {void} - 无返回值 @@ -569,13 +582,13 @@ class Client { let domainCur = window.location.hostname; if (domainCur.endsWith('.miyoushe.com')) domainCur = '.miyoushe.com'; else domainCur = '.mihoyo.com'; - document.cookie = 'account_id=${user.cookie!.account_id}; domain=' + domainCur + '; path=/; max-age=31536000'; - document.cookie = 'account_id_v2=${user.cookie!.account_id}; domain=' + domainCur + '; path=/; max-age=31536000'; - document.cookie = 'account_mid_v2=${user.cookie!.mid}; domain=' + domainCur + '; path=/; max-age=31536000'; - document.cookie = 'cookie_token=${user.cookie!.cookie_token}; domain=' + domainCur + '; path=/; max-age=31536000'; - document.cookie = 'ltmid_v2=${user.cookie!.mid}; domain=' + domainCur + '; path=/; max-age=31536000'; - document.cookie = 'ltoken=${user.cookie!.ltoken}; domain=' + domainCur + '; path=/; max-age=31536000'; - document.cookie = 'ltuid_v2=${user.cookie!.ltuid}; domain=' + domainCur + '; path=/; max-age=31536000'; + document.cookie = 'account_id=${user.cookie!.account_id}; domain=' + domainCur + '; path=/; + document.cookie = 'account_id_v2=${user.cookie!.account_id}; domain=' + domainCur + '; path=/; + document.cookie = 'account_mid_v2=${user.cookie!.mid}; domain=' + domainCur + '; path=/; + document.cookie = 'cookie_token=${user.cookie!.cookie_token}; domain=' + domainCur + '; path=/; + document.cookie = 'ltmid_v2=${user.cookie!.mid}; domain=' + domainCur + '; path=/; + document.cookie = 'ltoken=${user.cookie!.ltoken}; domain=' + domainCur + '; path=/; + document.cookie = 'ltuid_v2=${user.cookie!.ltuid}; domain=' + domainCur + '; path=/; })();`; console.info(`[getCookieToken] ${executeJS}`); await core.invoke("execute_js", { label: "mhy_client", js: executeJS });