如何在 VSCode 扩展中使用 openid 登录?

How to login using openid in VSCode extension?

我需要一些关于如何登录 VSC 扩展的信息 inputs/suggestions。我已经在 angular 中使用 https://www.npmjs.com/package/angular-auth-oidc-client 库为 Web 应用程序完成了类似的工作。

我正在开发 VSC 扩展(打字稿语言),我必须在用户使用它之前对用户进行身份验证。为此,我有 cloudIDP auth URL,我必须将请求转发给它,以便用户先登录。用户登录后,用户应返回 VSC 扩展,然后开始使用内置扩展命令。

我正在使用带有代码流的 https://www.npmjs.com/package/openid-client 库。我能够打开登录 url,让用户登录,返回到 vscode 扩展但没有令牌。

let req = Client.authorizationUrl({
    client_id: 'CLIENT:ID',
    client_secret: 'CLIENT_SECRET',
    redirect_uri: 'vscode://EXTENSION_NAME/auth',
    scope: 'openid profile email offline_access',
    response_type: ['code'],
    code_challenge,
    code_challenge_method: 'S256',
});

//This opens browser window from vscode and user gets logged in and comes back to extension
vscode.env.openExternal(vscode.Uri.parse(req)).then((response) => {
    console.log('Signin response: ', response); // returns true
    // not sure how to proceed here
});

我的方法是否正确,或者我需要在这里做任何其他事情吗?

请指导我,提前致谢。

阿尔佩什

我成功了。

重定向后,我必须在 UriHandler class 中处理逻辑,然后点击 api 使用重定向后收到的代码参数获取令牌。

如果您想了解(或将来),请告诉我,我很乐意在那里指导。

此致, 阿尔佩什