I found a few issues on the main passport repo, however, I think this primarily pertains to this specific strategy as I'm able to successfully authenticate using the passport-google-oauth strategy.
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)
I am using redis as the session store, however, even after eliminating that, it's still failing with the identical error message.
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); } ));
I'm happy to try anything, I've filed an issue on the repo, but I think it may be something I'm doing wrong rather than something wrong with the passport-dropbox repo.