From 87d9c7b4107730d0a03f6c70ae928798c80c4490 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Thu, 11 Sep 2025 21:00:51 +0800 Subject: [PATCH] feat: add client ID generation and update user agent headers in AppUpdater - Introduced a new method in ConfigManager to generate and retrieve a unique client ID. - Updated AppUpdater to include the client ID in the request headers alongside the user agent. --- src/main/services/AppUpdater.ts | 5 +++-- src/main/services/ConfigManager.ts | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/services/AppUpdater.ts b/src/main/services/AppUpdater.ts index bdfb8e3cc8..67e291f9cf 100644 --- a/src/main/services/AppUpdater.ts +++ b/src/main/services/AppUpdater.ts @@ -2,7 +2,7 @@ import { loggerService } from '@logger' import { isWin } from '@main/constant' import { getIpCountry } from '@main/utils/ipService' import { locales } from '@main/utils/locales' -import { generateUserAgent } from '@main/utils/systemInfo' +import { generateClientTelemetryHeader, generateUserAgent } from '@main/utils/systemInfo' import { FeedUrl, UpgradeChannel } from '@shared/config/constant' import { IpcChannel } from '@shared/IpcChannel' import { CancellationToken, UpdateInfo } from 'builder-util-runtime' @@ -30,7 +30,8 @@ export default class AppUpdater { autoUpdater.autoInstallOnAppQuit = configManager.getAutoUpdate() autoUpdater.requestHeaders = { ...autoUpdater.requestHeaders, - 'User-Agent': generateUserAgent() + 'User-Agent': generateUserAgent(), + 'X-Client-Id': configManager.getClientId() } autoUpdater.on('error', (error) => { diff --git a/src/main/services/ConfigManager.ts b/src/main/services/ConfigManager.ts index 5f5be2c723..3cab0bf91d 100644 --- a/src/main/services/ConfigManager.ts +++ b/src/main/services/ConfigManager.ts @@ -2,6 +2,7 @@ import { defaultLanguage, UpgradeChannel, ZOOM_SHORTCUTS } from '@shared/config/ import { LanguageVarious, Shortcut, ThemeMode } from '@types' import { app } from 'electron' import Store from 'electron-store' +import { v4 as uuidv4 } from 'uuid' import { locales } from '../utils/locales' @@ -27,7 +28,8 @@ export enum ConfigKeys { SelectionAssistantFilterList = 'selectionAssistantFilterList', DisableHardwareAcceleration = 'disableHardwareAcceleration', Proxy = 'proxy', - EnableDeveloperMode = 'enableDeveloperMode' + EnableDeveloperMode = 'enableDeveloperMode', + ClientId = 'clientId' } export class ConfigManager { @@ -241,6 +243,17 @@ export class ConfigManager { this.set(ConfigKeys.EnableDeveloperMode, value) } + getClientId(): string { + let clientId = this.get(ConfigKeys.ClientId) + + if (!clientId) { + clientId = uuidv4() + this.set(ConfigKeys.ClientId, clientId) + } + + return clientId + } + set(key: string, value: unknown, isNotify: boolean = false) { this.store.set(key, value) isNotify && this.notifySubscribers(key, value)