MCPcopy Create free account
hub / github.com/MoonshotAI/kimi-code / handleKimiCodeOAuthLogin

Function handleKimiCodeOAuthLogin

apps/kimi-code/src/tui/commands/auth.ts:43–100  ·  view source on GitHub ↗
(host: SlashCommandHost)

Source from the content-addressed store, hash-verified

41}
42
43async function handleKimiCodeOAuthLogin(host: SlashCommandHost): Promise<void> {
44 const status = await host.harness.auth.status(DEFAULT_OAUTH_PROVIDER_NAME);
45 const alreadyLoggedIn = status.providers.some(
46 (provider) => provider.providerName === DEFAULT_OAUTH_PROVIDER_NAME && provider.hasToken,
47 );
48
49 let spinner: LoginProgressSpinnerHandle | undefined;
50 const controller = new AbortController();
51 const cancelLogin = (): void => {
52 controller.abort();
53 };
54 host.cancelInFlight = cancelLogin;
55 try {
56 await host.harness.auth.login(DEFAULT_OAUTH_PROVIDER_NAME, {
57 signal: controller.signal,
58 onDeviceCode: (data) => {
59 spinner = host.showLoginAuthorizationPrompt(data);
60 },
61 });
62 spinner?.stop({ ok: true, label: 'Logged in.' });
63 spinner = undefined;
64 try {
65 await host.authFlow.refreshConfigAfterLogin();
66 } catch (refreshError) {
67 const message = formatErrorMessage(refreshError);
68 host.showError(`Authentication successful, but failed to refresh config: ${message}`);
69 return;
70 }
71 host.track('login', {
72 provider: DEFAULT_OAUTH_PROVIDER_NAME,
73 method: 'oauth',
74 already_logged_in: alreadyLoggedIn,
75 });
76 if (alreadyLoggedIn) {
77 host.showStatus('Already logged in. Model configuration refreshed.');
78 }
79 } catch (error) {
80 const cancelled = controller.signal.aborted;
81 spinner?.stop({
82 ok: false,
83 label: cancelled ? 'Login cancelled.' : 'Login failed.',
84 });
85 spinner = undefined;
86 if (cancelled) return;
87 log.warn('login failed', {
88 providerName: DEFAULT_OAUTH_PROVIDER_NAME,
89 alreadyLoggedIn,
90 sessionId: host.session?.id,
91 error,
92 });
93 const message = formatErrorMessage(error);
94 host.showError(`Login failed: ${message}`);
95 } finally {
96 if (host.cancelInFlight === cancelLogin) {
97 host.cancelInFlight = undefined;
98 }
99 }
100}

Callers 1

handleLoginCommandFunction · 0.85

Calls 10

formatErrorMessageFunction · 0.90
statusMethod · 0.65
loginMethod · 0.65
stopMethod · 0.65
showErrorMethod · 0.65
trackMethod · 0.65
showStatusMethod · 0.65
warnMethod · 0.65

Tested by

no test coverage detected