【发布时间】:2016-03-17 12:29:12
【问题描述】:
我正在使用 passport-twitter 的 nodejs 模块测试 twitter 身份验证。我已经创建了我的 Twitter 应用程序并配置了教程中指定的所有内容。问题是我在一个公司代理后面,据我所知,节点没有任何全局代理配置,也不尊重系统代理配置。这是我尝试使用 twitter-passport 进行身份验证时得到的输出:
InternalOAuthError:获取请求令牌失败 在 Strategy.OAuthStrategy._createOAuthError (/home/droid/WebstormProjects/passport-social-master/node_modules/passport-oauth1/lib/strategy.js:390:13) 在 /home/droid/WebstormProjects/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) 在 process._tickCallback (node.js:366:17)
到目前为止,我已经尝试使用这个设置一个全局隧道:
var globalTunnel = require('global-tunnel');
globalTunnel.initialize({
host: 'proxy.example.com',
port: 8080
});
在这种情况下,我得到的只是这条消息:
TypeError:请求路径包含非转义字符。 在新的 ClientRequest (_http_client.js:54:11) 在exports.request (http.js:31:10) 在 TunnelingAgent.http.request (/home/droid/WebstormProjects/passport-social-master/http-proxy.js:36:15) 在 TunnelingAgent.createSocket (/home/droid/WebstormProjects/passport-social-master/node_modules/tunnel/lib/tunnel.js:116:25) 在 TunnelingAgent.createSecureSocket [as 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) 在exports.request (http.js:31:10) 在 Object.http.request (/home/droid/WebstormProjects/passport-social-master/http-proxy.js:36:15) 在 Object.globalTunnel._defaultedAgentRequest (/home/droid/WebstormProjects/passport-social-master/node_modules/global-tunnel/index.js:211:38) 在 Object.exports.request (https.js:173:15) 在 Object.globalTunnel._defaultedAgentRequest (/home/droid/WebstormProjects/passport-social-master/node_modules/global-tunnel/index.js:211:38) 在exports.OAuth._createClient (/home/droid/WebstormProjects/passport-social-master/node_modules/oauth/lib/oauth.js:256:20) 在exports.OAuth._performSecureRequest (/home/droid/WebstormProjects/passport-social-master/node_modules/oauth/lib/oauth.js:371:19) 在exports.OAuth.getOAuthRequestToken (/home/droid/WebstormProjects/passport-social-master/node_modules/oauth/lib/oauth.js:542:8) 在 Strategy.OAuthStrategy.authenticate (/home/droid/WebstormProjects/passport-social-master/node_modules/passport-oauth1/lib/strategy.js:242:21)
我也尝试了 Shaun Xu 的半全局代理(http://blog.shaunxu.me/archive/2013/09/05/semi-global-proxy-setting-for-node.js.aspx)。我在任何地方都导入了修改后的 require.js,但没有任何效果。所以我没有选择......
【问题讨论】:
标签: node.js proxy passport-twitter