Skip to content

Commit 91b6ca5

Browse files
committed
feat: changes for OAuth flow
1 parent 1194a9a commit 91b6ca5

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

src/commands/showPanel.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@ async function handleMessage(
100100
context.globalState.update("courseId", courseId);
101101
treeDataProvider.refresh();
102102
break;
103+
case MessageTypeNames.LoginWithBrowser:
104+
const { route } = message;
105+
vscode.env.openExternal(vscode.Uri.parse(route));
103106
}
104107
console.log(`${Date.now()} Finish handleMessage: ${message.type}`);
105108
}

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/messages.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ const Messages = createMessages({
5858
Navigate: (route: string) => ({
5959
route,
6060
}),
61+
LoginWithBrowser: (route: string) => ({
62+
route,
63+
}),
6164
});
6265

6366
export default Messages;

0 commit comments

Comments
 (0)