2013-05-02 18 views
16

Ana pasaport repo'yla ilgili birkaç sorun buldum, ancak bence bu öncelikli olarak pasaport-google-oauth stratejisini kullanarak kimlik doğrulaması yapabilirim. .Hata: oturumda istek belirteci bulamadı

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) 

Hatta, hala aynı hata mesajı ile başarısız oluyor o ortadan kaldırarak sonra, ancak, oturum deposu olarak REDIS kullanıyorum. Her şeyi denemeye mutluyum

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); 
    } 
)); 

, ben repo bir sorun bulundum, ama benim yaptığım şey yanlış ziyade pasaport dropbox repo ile yanlış bir şey olabilir düşünüyorum.

cevap

27

... Sigh. Alt alan adını değiştirdiğimi unuttum. Böylece, alan adı farklı olduğu için çerez okunamadı.

+1

Aynı burada. Localhost üzerinde barındıran ve kullanılan örnek 127.0.0.1 vardı. –

+0

ve aynı - localhost vs 127.0.0.1 doh – user655489

+0

upvoted işler durdurulan cehennemden korkmuş !! – nimgrg

0

Hey birisi hala başka bir çözüm var sorunu ...

bu kodu eklemek yaşıyorsa:

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

sadece cookie: { secure: true } ekleyebilir ve yalnızca iyi çalışır ...

Ben de bu meseleyi yaşadım ve tekniklerin üzerinde bu sorunu çözmeme yardımcı oldu.