我需要一些有关如何登录 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
});
我的方法正确吗还是我需要在这里做其他事情?
请指导我,提前谢谢。
阿尔佩什
我成功了。
重定向后,我必须处理 UriHandler 类中的逻辑,然后使用重定向后收到的代码参数使用 api 获取令牌。
如果您想了解(或将来),请告诉我,我很乐意指导。
问候, 阿尔佩什
如果有人正在寻找如何处理 URIHandler 类的逻辑和 VSCode 的重定向。这个链接会有帮助
https://github.com/microsoft/vscode-extension-samples/blob/main/uri-handler-sample/README.md