我正在使用 passport-twitter 的 nodejs 模块测试 twitter auth。我已经创建了我的 Twitter 应用程序并配置了教程中指定的所有内容。问题是我在一个公司代理后面,据我所知,节点没有任何全局代理配置,也不尊重系统代理配置。这是我尝试使用 twitter-passport 进行身份验证时得到的输出:
InternalOAuthError:无法在 /home/droid/WebstormProjects 的 Strategy.OAuthStrategy._createOAuthError (/home/droid/WebstormProjects/passport-social-master/node_modules/passport-oauth1/lib/strategy.js:390:13) 处获取请求令牌/passport-social-master/node_modules/passport-oauth1/lib/strategy.js:244:40 在 /home/droid/WebstormProjects/passport-social-master/node_modules/oauth/lib/oauth.js:543:17 在客户端请求。(/home/droid/WebstormProjects/passport-social-master/node_modules/oauth/lib/oauth.js:421:9) 在emitOne (events.js:77:13) 在ClientRequest.emit (events.js:169: 7) 在 TLSSocket.socketErrorListener (_http_client.js:265:9) 在 emitOne (events.js:77:13) 在 TLSSocket.emit (events.js:169:7) 在 connectErrorNT (net.js:996:8)在进程中的 doNTCallback2 (node.js:452:9)。
到目前为止,我已尝试使用以下方法设置全局隧道:
var globalTunnel = require('global-tunnel');
globalTunnel.initialize({
host: 'proxy.example.com',
port: 8080
});
在这种情况下,我得到的只是这条消息:
TypeError:请求路径包含未转义的字符。在 TunnelingAgent.http.request (/home/droid/WebstormProjects/passport-social-master/http-proxy.js 的 export.request (http.js:31:10) 的新 ClientRequest (_http_client.js:54:11) :36:15) 在 TunnelingAgent.createSecureSocket [as createSocket] (/home/droid/WebstormProjects/passport-social-master/node_modules/tunnel/lib/tunnel.js:116:25) 的 TunnelingAgent.createSocket (/home/droid /WebstormProjects/passport-social-master/node_modules/tunnel/lib/tunnel.js:188:41) 在 TunnelingAgent.addRequest (/home/droid/WebstormProjects/passport-social-master/node_modules/tunnel/lib/tunnel.js :80:8) 在新的 ClientRequest (_http_client.js:139:16) 在 Export.request (http.js:31:10) 在 Object.http.request (/home/droid/WebstormProjects/passport-social-master/ http代理。
我也尝试了 Shaun Xu 的半全局代理(http://blog.shaunxu.me/archive/2013/09/05/semi-global-proxy-setting-for-node.js.aspx)。我在任何地方都导入了修改后的 require.js,但没有任何效果。所以我越来越没有选择...