【问题标题】:Issue with passport-twitter strategy护照推特策略问题
【发布时间】:2015-03-20 17:28:20
【问题描述】:

我有一个我用 Koa 在 node 中编写的应用程序。我使用 passport 进行身份验证,使用 passport-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

提前谢谢你。 :)

【问题讨论】:

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


    【解决方案1】:

    我们终于找到了问题所在。

    Koa 的网站说要执行 n 0.11,它正在加载 n 0.11.15

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

    【讨论】:

    • 非常有用。你知道为什么会这样吗?提交一个有问题的错误可能会很方便,以便他们进行调查。
    • 我不知道为什么不幸发生了。我确实在 koa-passport 上提交了一个问题,指出发生了什么以及如何解决它,但很难知道是谁的包是导致问题的包。
    猜你喜欢
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 2019-01-29
    • 2019-08-12
    • 2012-06-09
    • 2019-04-12
    • 1970-01-01
    • 2021-02-11
    相关资源
    最近更新 更多