22
33import axios , { isAxiosError } from "axios" ;
44import { getErrorMessage } from "coder/site/src/api/errors" ;
5- import * as module from "module" ;
5+ import * as module from "node: module" ;
66import * as vscode from "vscode" ;
77
88import { errToStr } from "./api/api-helper" ;
@@ -12,6 +12,7 @@ import { Commands } from "./commands";
1212import { ServiceContainer } from "./core/container" ;
1313import { AuthAction } from "./core/secretsManager" ;
1414import { CertificateError , getErrorDetail } from "./error" ;
15+ import { activateCoderOAuth , CALLBACK_PATH } from "./oauth" ;
1516import { maybeAskUrl } from "./promptUtils" ;
1617import { Remote } from "./remote/remote" ;
1718import { toSafeHost } from "./util" ;
@@ -122,11 +123,22 @@ export async function activate(ctx: vscode.ExtensionContext): Promise<void> {
122123 ctx . subscriptions ,
123124 ) ;
124125
126+ const oauthHelper = activateCoderOAuth ( client , secretsManager , output , ctx ) ;
127+
125128 // Handle vscode:// URIs.
126129 const uriHandler = vscode . window . registerUriHandler ( {
127130 handleUri : async ( uri ) => {
128- const cliManager = serviceContainer . getCliManager ( ) ;
129131 const params = new URLSearchParams ( uri . query ) ;
132+
133+ if ( uri . path === CALLBACK_PATH ) {
134+ const code = params . get ( "code" ) ;
135+ const state = params . get ( "state" ) ;
136+ const error = params . get ( "error" ) ;
137+ oauthHelper . handleCallback ( code , state , error ) ;
138+ return ;
139+ }
140+
141+ const cliManager = serviceContainer . getCliManager ( ) ;
130142 if ( uri . path === "/open" ) {
131143 const owner = params . get ( "owner" ) ;
132144 const workspace = params . get ( "workspace" ) ;
0 commit comments