/** * Cookie 字符串解析工具 * 统一替代 kugouAuthService 和 tencentAuthService 中的重复实现 */ /** * 将 cookie 字符串解析为 key-value 对象 * @example parseCookieString('token=abc;userid=123') => { token: 'abc', userid: '123' } */ export function parseCookieString(cookie: string): Record { const result: Record = {} for (const pair of cookie.split(';')) { const eqIdx = pair.indexOf('=') if (eqIdx < 1) continue const key = pair.substring(0, eqIdx).trim() const value = pair.substring(eqIdx + 1).trim() result[key] = value } return result } /** * 从 cookie 字符串中快速提取单个 key 的值 * 比 parseCookieString 更高效(无需解析整个字符串) * @example getCookieValue('uin=123456; qm_keyst=abc', 'uin') => '123456' */ export function getCookieValue(cookie: string, key: string): string | null { const regex = new RegExp(`(?:^|;\\s*)${key}=([^;]*)`) const match = cookie.match(regex) return match ? match[1].trim() : null }