node.js - online - jwt-simple
Error: no se pudo encontrar el token de solicitud en la sesiĆ³n (2)
... suspiro. Olvidé que cambié el subdominio. Entonces, la cookie no era legible porque el nombre de dominio era diferente.
Encontré algunos problemas en el repositorio principal de pasaportes, sin embargo, creo que esto se relaciona principalmente con esta estrategia específica, ya que puedo autenticarme exitosamente usando la estrategia pasaporte-google-oauth.
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)
Estoy usando redis como el almacén de sesiones, sin embargo, incluso después de eliminar eso, sigue fallando con el mensaje de error idéntico.
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);
}
));
Estoy feliz de probar cualquier cosa, he archivado un problema en el repositorio, pero creo que puede ser algo que estoy haciendo mal en lugar de algo malo con el repo de pasaporte y dropbox.
Hola, si alguien todavía tiene el problema, tengo otra solución ...
agregue este código:
app.use(passport.session({ secret: ''Shhh.. This is a secret'', cookie: { secure: true } }));
solo agregue la cookie: { secure: true }
y funcionará bien ...
Yo también tuve este problema y la técnica anterior me ayudó a resolver esto.