mirror of
https://github.com/yaklang/yaklang-chrome-extension.git
synced 2026-09-22 03:10:43 +08:00
98 lines
2.9 KiB
JavaScript
98 lines
2.9 KiB
JavaScript
// 代理认证管理
|
|
export class ProxyAuth {
|
|
static async setupAuthListener() {
|
|
try {
|
|
// 保存认证信息到 storage
|
|
const saveAuth = async (config) => {
|
|
await chrome.storage.local.set({
|
|
proxyAuth: {
|
|
username: config.username,
|
|
password: config.password,
|
|
timestamp: Date.now()
|
|
}
|
|
});
|
|
};
|
|
|
|
// 获取认证信息
|
|
const getAuth = async () => {
|
|
const result = await chrome.storage.local.get('proxyAuth');
|
|
return result.proxyAuth;
|
|
};
|
|
|
|
// 清除认证信息
|
|
const clearAuth = async () => {
|
|
await chrome.storage.local.remove('proxyAuth');
|
|
};
|
|
|
|
return {
|
|
saveAuth,
|
|
getAuth,
|
|
clearAuth
|
|
};
|
|
} catch (error) {
|
|
console.error('Error setting up auth listener:', error);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
static setupErrorHandler() {
|
|
// 在 Manifest V3 中,我们不能使用 chrome.proxy.onProxyError
|
|
// 所以我们只记录错误到 storage
|
|
try {
|
|
const logError = async (error) => {
|
|
const errors = await chrome.storage.local.get('proxyErrors') || [];
|
|
errors.push({
|
|
timestamp: Date.now(),
|
|
error: error.message || error
|
|
});
|
|
await chrome.storage.local.set({
|
|
proxyErrors: errors.slice(-100) // 只保留最近100条错误记录
|
|
});
|
|
};
|
|
|
|
return { logError };
|
|
} catch (error) {
|
|
console.error('Error setting up error handler:', error);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
// 设置代理认证信息
|
|
static async setProxyAuth(username, password) {
|
|
try {
|
|
await chrome.storage.local.set({
|
|
proxyAuth: {
|
|
username,
|
|
password,
|
|
timestamp: Date.now()
|
|
}
|
|
});
|
|
return true;
|
|
} catch (error) {
|
|
console.error('Error setting proxy auth:', error);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
// 获取代理认证信息
|
|
static async getProxyAuth() {
|
|
try {
|
|
const result = await chrome.storage.local.get('proxyAuth');
|
|
return result.proxyAuth || null;
|
|
} catch (error) {
|
|
console.error('Error getting proxy auth:', error);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
// 清除代理认证信息
|
|
static async clearProxyAuth() {
|
|
try {
|
|
await chrome.storage.local.remove('proxyAuth');
|
|
return true;
|
|
} catch (error) {
|
|
console.error('Error clearing proxy auth:', error);
|
|
return false;
|
|
}
|
|
}
|
|
}
|