Skip to content

Commit 1045b0c

Browse files
committed
feat: changes for OAuth flow
1 parent 538a13b commit 1045b0c

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
@@ -169,6 +169,9 @@ export class MessageHandler {
169169
context.globalState.update("courseId", courseId);
170170
treeDataProvider.refresh();
171171
break;
172+
case MessageTypeNames.LoginWithBrowser:
173+
const { route } = message;
174+
vscode.env.openExternal(vscode.Uri.parse(route));
172175
}
173176
console.log(`${Date.now()} Finish handleMessage: ${message.type}`);
174177
}

src/utils/messages.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ const Messages = createMessages({
8282
questionId,
8383
choice,
8484
}),
85+
LoginWithBrowser: (route: string) => ({
86+
route,
87+
}),
8588
});
8689

8790
export default Messages;

0 commit comments

Comments
 (0)