Passport-Twitter – 错误:无法在会话中查找请求令牌

我正在使用passport-twitter在我的网站上build立一个twitter连接。 用户可以通过点击“login”或“添加新项目”进行连接。 2之间的唯一区别是,如果他们点击添加新项目,模式窗口应该打开一旦他们login。

要知道button,他们点击,我存储在req.session.referrerurl:

 // route for twitter authentication and login app.get('/auth/twitter', function(req, res, next){ req.session.referrer = req.url; console.log(req.session); passport.authenticate('twitter')(req, res, next); }); app.get('/auth/twitter/new', function(req, res, next){ req.session.referrer = req.url; console.log(req.session); passport.authenticate('twitter')(req, res, next); }); // handle the callback after twitter has authenticated the user app.get('/auth/twitter/callback', function(req, res, next){ var options = { successRedirect : '/twitter-user/signin', failureRedirect : '/' }; console.log(req.session); if (req.session.referrer && req.session.referrer.indexOf('new') > -1) options.successRedirect = '/twitter-user/new'; passport.authenticate('twitter', options)(req, res, next) }); 

一切工作正常在我的开发环境,但一旦在线我得到这个错误信息:快递

 500 Error: Failed to find request token in session at Strategy.OAuthStrategy.authenticate (/app/node_modules/passport-twitter/node_modules/passport-oauth1/lib/strategy.js:142:54) ... 

我的设置在Twitter中正确设置。 这是我得到的日志:对于请求:

 { cookie: { path: '/', _expires: null, originalMaxAge: null, httpOnly: true }, passport: {}, referrer: '/auth/twitter' } 

对于callback:

 { cookie: { path: '/', _expires: null, originalMaxAge: null, httpOnly: true }, passport: {} } 

也许这可能是由于子域问题( http://example.com vs http://www.example.com ),因为我本地没有pb。 我怎样才能解决这个问题?

非常感谢

编辑:我的API密钥是这样设置的(按照本教程: http : //scotch.io/tutorials/javascript/easy-node-authentication-twitter ):

 passport.use(new TwitterStrategy({ consumerKey : configAuth.twitterAuth.consumerKey, consumerSecret : configAuth.twitterAuth.consumerSecret, callbackURL : configAuth.twitterAuth.callbackURL },function(token, tokenSecret, profile, done) { ... }); 

我得到了相同的错误,但解决了它..这是我的问题是什么和解决scheme。

实际上,它不喜欢我的redirecturl“http:// localhost / auth / twitter / callback”。 我将其更改为“http:// 127.0.0.1 / auth / twitter / callback”。 在我的实际代码中,我必须保持它作为本地主机,否则我会得到有关缺less令牌的错误