护照-推特策略问题

Issue with passport-twitter strategy

我有一个用 Koa 在节点中编写的应用程序。我使用 passport 进行身份验证,使用 passport-twitter 进行 twitter oauth,使用 koa-passport 使其与 Koa 一起使用。直到最近,登录的一切都运行良好。我开始吸引一些朋友对 github 的兴趣,当我试图让新人参与这个项目时,人们开始遇到无法登录和收到此消息的问题:

Whoa there! There is no request token for this page. That's the special key we need from applications asking to use your Twitter account. Please go back to the site or application that sent you here and try again; it was probably just a mistake.

奇怪的是,我的生产服务器与存储库是最新的,并且那里的登录工作正常。我的两台本地计算机上的登录也可以正常工作。当我从我的笔记本电脑中完全删除该项目并再次将其关闭时,它也开始出现问题。

这是我 auth.js

中的代码
var passport = require('koa-passport');
var settings = require('./settings');
var Promise = require('../plugins/base/common').Promise;
var config = require('../config.json');

passport.serializeUser(function(user, done) {
  done(null, user)
})

passport.deserializeUser(function(user, done) {
  done(null, user)
})

if (process.env.NODE_ENV == "production"){
  var domainStr = "http://productionurl.com";
}else{
  var domainStr = "http://127.0.0.1:3000";
}

var TwitterStrategy = require('passport-twitter').Strategy
passport.use(new TwitterStrategy({
  consumerKey: config.app.data.passport_twitter.consumerKey,
  consumerSecret: config.app.data.passport_twitter.consumerSecret,
  callbackURL: domainStr + '/auth/twitter/callback'
},
Promise.coroutine(function * (token, tokenSecret, profile, done) {
  user = yield settings.createUser(profile, "twitter");
  done(null, user);
})

))

我已经在生产和本地对 npm list 进行了比较,试图使它们匹配,即使它们匹配,我的笔记本电脑也会出现该错误。

我看了下我的时钟,没错,所以我完全没有想法。

完整代码在这里:http://github.com/snollygolly/bloodhound

提前谢谢你。 :)

我们终于弄清楚了这个问题。

Koa 的网站说要做 n 0.11 正在加载 n 0.11.15

不幸的是,passport 或 koa-passport 中的某些内容不适用于该版本。恢复到 n 0.11.14 可以解决问题。