mirror of
https://github.com/foxhui/WebAI2API.git
synced 2026-06-16 21:03:59 +08:00
fix: 修复 Gemini Business 自动续登监听被多次触发的问题
This commit is contained in:
@@ -17,6 +17,9 @@ import { logger } from '../../utils/logger.js';
|
|||||||
// Gemini Biz 输入框选择器
|
// Gemini Biz 输入框选择器
|
||||||
const INPUT_SELECTOR = 'ucs-prosemirror-editor .ProseMirror';
|
const INPUT_SELECTOR = 'ucs-prosemirror-editor .ProseMirror';
|
||||||
|
|
||||||
|
// 防止重复处理登录的锁
|
||||||
|
let isHandlingAuth = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理账户选择页面跳转
|
* 处理账户选择页面跳转
|
||||||
* @param {import('puppeteer').Page} page
|
* @param {import('puppeteer').Page} page
|
||||||
@@ -24,9 +27,13 @@ const INPUT_SELECTOR = 'ucs-prosemirror-editor .ProseMirror';
|
|||||||
* @returns {Promise<boolean>} 是否处理了跳转
|
* @returns {Promise<boolean>} 是否处理了跳转
|
||||||
*/
|
*/
|
||||||
async function handleAccountChooser(page) {
|
async function handleAccountChooser(page) {
|
||||||
|
// 防止重复处理
|
||||||
|
if (isHandlingAuth) return false;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const currentUrl = page.url();
|
const currentUrl = page.url();
|
||||||
if (currentUrl.includes('auth.business.gemini.google/account-chooser')) {
|
if (currentUrl.includes('auth.business.gemini.google/account-chooser')) {
|
||||||
|
isHandlingAuth = true;
|
||||||
logger.info('适配器', '[登录器] 检测到账户选择页面,尝试自动确认...');
|
logger.info('适配器', '[登录器] 检测到账户选择页面,尝试自动确认...');
|
||||||
|
|
||||||
// 尝试查找提交按钮 (通常是标准的 button[type="submit"])
|
// 尝试查找提交按钮 (通常是标准的 button[type="submit"])
|
||||||
@@ -58,13 +65,16 @@ async function handleAccountChooser(page) {
|
|||||||
|
|
||||||
// 额外缓冲时间,确保页面完全加载
|
// 额外缓冲时间,确保页面完全加载
|
||||||
await sleep(2000, 3000);
|
await sleep(2000, 3000);
|
||||||
|
isHandlingAuth = false;
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
logger.warn('适配器', '[登录器] 未找到确认按钮 button[type="submit"]');
|
logger.warn('适配器', '[登录器] 未找到确认按钮 button[type="submit"]');
|
||||||
|
isHandlingAuth = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.warn('适配器', `[登录器] 处理账户选择页面失败: ${err.message}`);
|
logger.warn('适配器', `[登录器] 处理账户选择页面失败: ${err.message}`);
|
||||||
|
isHandlingAuth = false;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user