我有一个我用 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
先感谢您。:)