/
outbreak
/
kilocode
Обзор
Документация
Войти
/
outbreak
/
kilocode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/cloud/src/StaticTokenAuthService.ts
107 строк
3 KB
marius-kilocode
Handle authentication failures with CLI when using agent manager (#4373)
12 дек 2025, 14:48
Не верифицирован
12 дек 2025, 14:48
a80ec02
Код
Авторство
О чём код?
import EventEmitter from "events" import { jwtDecode } from "jwt-decode" import type { ExtensionContext } from "vscode" import type { JWTPayload, CloudUserInfo, AuthService, AuthServiceEvents, AuthState } from "@roo-code/types" export class StaticTokenAuthService extends EventEmitter<AuthServiceEvents> implements AuthService { private state: AuthState = "active-session" private token: string private log: (...args: unknown[]) => void private userInfo: CloudUserInfo constructor(context: ExtensionContext, token: string, log?: (...args: unknown[]) => void) { super() this.token = token this.log = log || console.log this.log("[auth] Using StaticTokenAuthService") let payload try { const parts = typeof token === "string" ? token.split(".") : [] if (parts.length !== 3 || parts.some((p) => p.length === 0)) { throw new Error("Invalid JWT format") } payload = jwtDecode<JWTPayload>(token) } catch (error) { this.log("[auth] Failed to parse JWT:", error) } this.userInfo = { id: payload?.r?.u || payload?.sub || undefined, organizationId: payload?.r?.o || undefined, extensionBridgeEnabled: true, } } public async initialize(): Promise<void> { this.state = "active-session" } public broadcast(): void { this.emit("auth-state-changed", { state: this.state, previousState: "initializing", }) this.emit("user-info", { userInfo: this.userInfo }) } public async login(_landingPageSlug?: string, _useProviderSignup?: boolean): Promise<void> { throw new Error("Authentication methods are disabled in StaticTokenAuthService") } public async logout(): Promise<void> { throw new Error("Authentication methods are disabled in StaticTokenAuthService") } public async handleCallback( _code: string | null, _state: string | null, _organizationId?: string | null, _providerModel?: string | null, ): Promise<void> { throw new Error("Authentication methods are disabled in StaticTokenAuthService") } public async switchOrganization(_organizationId: string | null): Promise<void> { throw new Error("Authentication methods are disabled in StaticTokenAuthService") } public async getOrganizationMemberships(): Promise<import("@roo-code/types").CloudOrganizationMembership[]> { throw new Error("Authentication methods are disabled in StaticTokenAuthService") } public getState(): AuthState { return this.state } public getSessionToken(): string | undefined { return this.token } public isAuthenticated(): boolean { return true } public hasActiveSession(): boolean { return true } public hasOrIsAcquiringActiveSession(): boolean { return true } public getUserInfo(): CloudUserInfo | null { return this.userInfo } public getStoredOrganizationId(): string | null { return this.userInfo?.organizationId || null } }