2017-09-14 2 views
1

Quelqu'un peut-il m'expliquer où le middleware nécessite une chaîne secrète? En outre, si je mets une paire clé secrète/valeur dans les options de passport.session Je reçois toujours le même message d'erreurObtention "TypeError: une chaîne secrète doit être fournie." dans l'application NodeJS avec Passport.js et Express-Session comme middleware

Voici le code

// using pug since a view engine is required by express 
    app.set('views', __dirname) 
    app.set('view engine', 'pug') 

    app.use(cookieParser(secretConfig)) 
    // parse application/json 
    app.use(bodyParser.json()) 

    // parse application/x-www-form-urlencoded 
    app.use(bodyParser.urlencoded({ extended: false })) 


    app.use(passport.initialize()); 
    app.use(passport.session({ 
     resave: false, 
     saveUninitialized: true, 
     failureFlash: true 
    })); 

    //app.use(flash()); 

    // Load the REST endpoints 
    app.use('/api', require('./endpoints/whatever/router')) 
    app.use('/api', require('./endpoints/login/router')) 

    // app.use('/api', require('./users/router')) 
    // Repeat the above line for additional model areas ("deals", "vehicles",   etc) 


    app.use('/graphql', graphqlHTTP({ 
     schema: schema, 
     rootValue: root, 
     graphiql: true 
    }));   

Répondre

3

Cela n'aime pas le droit de me:

app.use(passport.session({ 
    resave: false, 
    saveUninitialized: true, 
    failureFlash: true 
})); 

Je crois que vous avez besoin de quelque chose comme ceci:

var session = require('express-session'); 

app.use(session({ 
    resave: false, 
    saveUninitialized: true, 
    secret: 'secret here' 
}); 

app.use(passport.initialize()); 
app.use(passport.session()); 

Eve Même si vous mentionnez 'Express-Session' dans votre titre, l'exemple de code que vous avez publié ne l'utilise pas réellement. Ce n'est pas pareil passport.session.

Sauf si vous l'utilisez pour autre chose, vous pouvez également supprimer le cookie-parser car la dernière version de express-session n'en a pas besoin.