Skip to content

Commit a8b041d

Browse files
committed
feat: changes for OAuth flow
1 parent 7b32739 commit a8b041d

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

src/extension.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,20 @@ export function activate(context: vscode.ExtensionContext) {
5151
"*.js": "source",
5252
});
5353
}
54+
55+
vscode.window.registerUriHandler({
56+
handleUri(uri: vscode.Uri) {
57+
const searchParams = new URLSearchParams(uri.query);
58+
// The following two params are available when logging in via OAuth providers
59+
const code = searchParams.get("code");
60+
const clientRequestId = searchParams.get("client-request-id");
61+
62+
vscode.commands.executeCommand(
63+
"source-academy.show-panel",
64+
`/login/vscode_callback?code=${code}&client-request-id=${clientRequestId}`,
65+
);
66+
},
67+
});
5468
}
5569

5670
// This method is called when your extension is deactivated

src/utils/messageHandler.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,9 @@ export class MessageHandler {
173173
this.panel?.reveal(vscode.ViewColumn.Two);
174174
}
175175
break;
176+
case MessageTypeNames.LoginWithBrowser:
177+
const { route } = message;
178+
vscode.env.openExternal(vscode.Uri.parse(route));
176179
}
177180
console.log(`${Date.now()} Finish handleMessage: ${message.type}`);
178181
}

src/utils/messages.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ const Messages = createMessages({
8989
questionId,
9090
choice,
9191
}),
92+
LoginWithBrowser: (route: string) => ({
93+
route,
94+
}),
9295
});
9396

9497
export default Messages;

0 commit comments

Comments
 (0)