Express 4中的req.user未定义

时间:2015-02-12 22:34:36

标签: node.js session express

我构建了一个使用Oauth与第三方Jawbone应用进行身份验证的应用。我试图从我的一条路线中的req.user.jawbone.token中取出req.user;但是,我收到一条错误消息,指出req.user未定义。我在快递3中有这个工作,但升级到快递4后它不再工作 - 这让我相信我的会话没有正确存储。

以下是我app.js配置的相关部分:

var passport        = require('passport');
var session         = require('express-session')
var MongoStore      = require('connect-mongo')({session: session});
require('./config/passport')(passport);

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());


// passport
app.use(passport.initialize());
app.use(passport.session());        // persistent login sessions
app.use(session({
    store: new MongoStore({
        url: mongoUrl 
    }),
    secret: 'password',
    resave: false,
    saveUninitialized: true 
}));

1 个答案:

答案 0 :(得分:1)

对于遇到此问题的其他任何人来说,问题是由于我的中间件处于错误的顺序。我重新安排到下面,它正常工作

app.use(session({
    store: new MongoStore({
        url: mongoUrl 
    }),
    secret: 'password',
    resave: false,
    saveUninitialized: true 
}));
app.use(passport.initialize());
app.use(passport.session());