【发布时间】: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