发布护照 - 推特策略

时间:2015-01-22 01:42:43

标签: javascript node.js passport.js koa passport-twitter

我有一个应用程序,我已经用Koa编写了节点。我使用护照进行身份验证,使用twitter-twitter进行twitter oauth,使用koa-passport使其与Koa一起使用。直到最近,登录的所有内容都运行良好。我开始从朋友那里吸引一些关于github的兴趣,当我试图让新人们参与项目时,人们开始遇到无法登录并收到此消息的问题:

  

哇那里!此页面没有请求令牌。那就是   我们需要使用您的Twitter的应用程序的特殊密钥   帐户。请返回发送给您的网站或应用程序   然后再试一次;这可能只是一个错误。

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

这是我的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

提前谢谢你。 :)

1 个答案:

答案 0 :(得分:4)

我们终于找到了问题。

Koa的网站说要n 0.11加载n 0.11.15

不幸的是,护照或koa护照中的内容不适用于该版本。恢复为n 0.11.14可以解决问题。