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

问题描述 投票:0回答:2

我需要一些有关如何登录 VSC 扩展的输入/建议。我已经使用 https://www.npmjs.com/package/angular-auth-oidc-client 库为 Angular 中的 Web 应用程序做了类似的事情。

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

我正在使用 https://www.npmjs.com/package/openid-client 库和代码流。我可以打开登录网址,让用户登录,返回 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
});

我的方法正确吗还是我需要在这里做其他事情?

请指导我,提前谢谢。

阿尔佩什

typescript visual-studio-code authorization openid vscode-extensions
2个回答
0
投票

我成功了。

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

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

问候, 阿尔佩什


0
投票

如果有人正在寻找如何处理 URIHandler 类的逻辑和 VSCode 的重定向。这个链接会有帮助

https://github.com/microsoft/vscode-extension-samples/blob/main/uri-handler-sample/README.md

© www.soinside.com 2019 - 2024. All rights reserved.