👽️ 由于Gt4配置变更,修复极验未正确触发

This commit is contained in:
BTMuli
2026-01-22 23:00:47 +08:00
parent 77c333383c
commit c9e548ff57
3 changed files with 15 additions and 5 deletions

View File

@@ -565,7 +565,7 @@ async function tryGetCaptcha(phone: string, aigis?: string): Promise<string | fa
/** /**
* 尝试通过验证码登录 * 尝试通过验证码登录
* @since Beta v0.8.7 * @since Beta v0.9.5
* @param {string} phone 手机号 * @param {string} phone 手机号
* @param {string} captcha 验证码 * @param {string} captcha 验证码
* @param {string} actionType action_type * @param {string} actionType action_type
@@ -585,10 +585,11 @@ async function tryLoginByCaptcha(
await TGLogger.Error( await TGLogger.Error(
`[tc-userBadge][tryLoginByCaptcha] ${loginResp.retcode} ${loginResp.message}`, `[tc-userBadge][tryLoginByCaptcha] ${loginResp.retcode} ${loginResp.message}`,
); );
await new Promise<void>((resolve) => setTimeout(resolve, 3000));
return false; return false;
} }
const aigisResp: TGApp.BBS.CaptchaLogin.CaptchaAigis = JSON.parse(loginResp.data); const aigisResp: TGApp.BBS.CaptchaLogin.CaptchaAigis = JSON.parse(loginResp.data);
const resp = await showGeetest(JSON.parse(aigisResp.data)); const resp = await showGeetest(JSON.parse(aigisResp.data), aigisResp);
const aigisStr = `${aigisResp.session_id};${btoa(JSON.stringify(resp))}`; const aigisStr = `${aigisResp.session_id};${btoa(JSON.stringify(resp))}`;
return await tryLoginByCaptcha(phone, captcha, actionType, aigisStr); return await tryLoginByCaptcha(phone, captcha, actionType, aigisStr);
} }

View File

@@ -58,6 +58,7 @@ async function displayBox(
): Promise<TGApp.BBS.Geetest.GeetestVerifyRes | false> { ): Promise<TGApp.BBS.Geetest.GeetestVerifyRes | false> {
if ("challenge" in props) { if ("challenge" in props) {
return await new Promise<TGApp.BBS.Geetest.GeetestVerifyRes | false>((resolve) => { return await new Promise<TGApp.BBS.Geetest.GeetestVerifyRes | false>((resolve) => {
console.log("initGeetest", props);
initGeetest( initGeetest(
{ {
gt: props.gt, gt: props.gt,
@@ -85,6 +86,7 @@ async function displayBox(
}); });
} }
return await new Promise<TGApp.BBS.Geetest.GeetestVerifyRes | false>((resolve) => { return await new Promise<TGApp.BBS.Geetest.GeetestVerifyRes | false>((resolve) => {
console.log("initGeetest4", props, raw);
initGeetest4( initGeetest4(
{ {
captchaId: props.gt, captchaId: props.gt,
@@ -93,7 +95,7 @@ async function displayBox(
nextWidth: "250px", nextWidth: "250px",
lang: "zho", lang: "zho",
userInfo: JSON.stringify({ session_id: raw?.session_id }), userInfo: JSON.stringify({ session_id: raw?.session_id }),
protocol: "https", https: true,
}, },
(captchaObj: TGApp.BBS.Geetest.GeetestCaptcha) => { (captchaObj: TGApp.BBS.Geetest.GeetestCaptcha) => {
if (geetestEl.value === null) return; if (geetestEl.value === null) return;

View File

@@ -1,6 +1,6 @@
/** /**
* 极验验证相关类型定义文件 * 极验验证相关类型定义文件
* @since Beta v0.8.7 * @since Beta v0.9.5
*/ */
declare namespace TGApp.BBS.Geetest { declare namespace TGApp.BBS.Geetest {
@@ -90,7 +90,7 @@ declare namespace TGApp.BBS.Geetest {
/** /**
* 初始化 Gt4 验证的请求参数 * 初始化 Gt4 验证的请求参数
* @since Beta v0.8.7 * @since Beta v0.9.5
*/ */
type InitGeetest4Params = { type InitGeetest4Params = {
/** 验证ID */ /** 验证ID */
@@ -107,6 +107,13 @@ declare namespace TGApp.BBS.Geetest {
lang: string; lang: string;
/** 协议头 */ /** 协议头 */
protocol: string; protocol: string;
/**
* 使用 https 协议
* @remarks 改配置在部署文档中未提及但是在 js 中具有
* - 部署文档https://docs.geetest.com/gt4/apirefer/api/web#%E9%85%8D%E7%BD%AE%E5%8F%82%E6%95%B0
* - JS: https://static.geetest.com/v4/gt4.js
*/
https: boolean;
}; };
/** /**