代码之家  ›  专栏  ›  技术社区  ›  baconLikeTheKevin725

Getting“TypeError:必须提供机密字符串。”在带护照的NodeJS申请中。js和Express Session作为中间件

  •  2
  • baconLikeTheKevin725  · 技术社区  · 7 年前

    有人能解释一下中间件在哪里需要一个秘密字符串吗? 此外,如果我在passport中设置了密钥/值对。会话选项我仍然收到相同的错误消息

        // 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
        }));        
    
    1 回复  |  直到 7 年前
        1
  •  6
  •   skirtle    7 年前

    这与我的权利不同:

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

    我相信你需要这样的东西:

    var session = require('express-session');
    
    app.use(session({
        resave: false,
        saveUninitialized: true,
        secret: 'secret here'
    });
    
    app.use(passport.initialize());
    app.use(passport.session());
    

    passport.session .

    除非您将其用于其他用途,否则也可以删除 cookie-parser 作为最新版本的 express-session