错误:未能在会话中find请求令牌

我在主要的护照回购中发现了一些问题,但是,我认为这主要与这个特定的策略有关,因为我能够使用护照 – 谷歌 – 奥法策略成功validation身份。

Error: failed to find request token in session at Strategy.OAuthStrategy.authenticate (/home/glug/application/node_modules/passport-dropbox/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth.js:124:54) at attempt (/home/glug/application/node_modules/passport/lib/passport/middleware/authenticate.js:243:16) at Passport.authenticate (/home/glug/application/node_modules/passport/lib/passport/middleware/authenticate.js:244:7) at callbacks (/home/glug/application/node_modules/express/lib/router/index.js:161:37) at param (/home/glug/application/node_modules/express/lib/router/index.js:135:11) at pass (/home/glug/application/node_modules/express/lib/router/index.js:142:5) at Router._dispatch (/home/glug/application/node_modules/express/lib/router/index.js:170:5) at Object.router (/home/glug/application/node_modules/express/lib/router/index.js:33:10) at Context.next (/home/glug/application/node_modules/express/node_modules/connect/lib/proto.js:190:15) at Context.actions.pass (/home/glug/application/node_modules/passport/lib/passport/context/http/actions.js:77:8) 

我使用redis作为会话存储,但是,即使在消除之后,它仍然失败,出现相同的错误消息。

 var DropboxStrategy = require('passport-dropbox').Strategy; app.configure(function(){ app.set('port', config.express.port); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser()); app.use(express.session({ // store: new RedisStore({ client: redis}), secret: config.express.secret })); app.use(passport.initialize()); app.use(passport.session()); app.use(app.router); }); passport.serializeUser(function(user, done) { // console.log('Serializing: ' + JSON.stringify(user)); done(null, user); }); passport.deserializeUser(function(obj, done) { // console.log('Deserializing: ' + obj); done(null, obj); }); passport.use(new DropboxStrategy({ consumerKey: config.dropbox.key, consumerSecret: config.dropbox.secret, callbackURL: config.dropbox.callbackURL }, function(token, tokenSecret, profile, done) { // My storage function return done(null, profile); } )); 

我很高兴尝试任何事情,我已经提交了一个回购问题,但我认为这可能是我做错了,而不是护照,Dropbox回购有什么问题。

叹气 我忘了我改变了子域名。 所以,Cookie不可读,因为域名是不同的。

嘿,如果有人仍然有这个问题,我有另一种解决scheme…

添加以下代码:

 app.use(passport.session({ secret: 'Shhh.. This is a secret', cookie: { secure: true } })); 

只需添加cookie: { secure: true } ,它将工作得很好…

我也有这个问题,以上技术帮助我解决这个问题。