问题描述
const ClientOAuth2 = require('client-oauth2');
const oauth2 = new ClientOAuth2({
clientId: 'clientId',clientSecret: 'clientSecret',accesstokenUri: 'https://fakeurl.com/v1/auth/token',});
oauth2 .credentials.getToken().then(function (user) {
console.log(user);
}).catch(function (error) {
console.log(error);
});
如果我在公司网络中运行此代码,是否有一种方法可以在请求令牌时包括代理设置
解决方法
我快速看了一下,却找不到简单的方法。除了代理功能,我还注意到它缺少诸如以下这些功能的Open Id Connect功能:
- 查找元数据
- 授权代码流(PKCE)
- 呼叫用户信息端点
要求
为您的应用选择一个库是一个重要的决定,这是人们通常会寻找的一些常识:
- 基于标准(适用于任何授权服务器)
- 获得认证,遵循最新的OAuth 2.1和Open Id Connect建议
- 支持HTTP代理(在开发时查看OAuth消息非常有用)
NODEJS解决方案
如果您正在使用Node,那么可能值得考虑使用node openid-client库,这是我使用的库。这是我的API中的一些相关代码:
- Looking up metadata-请注意,可以提供代理来支持代理
- Setting the HTTP proxy-我使用TunnelAgent.httpsOverHttp代理对HTTPS OAuth URL的调用
- OAuth Operations-请注意,有些自定义类使这些任务更加容易