req.user 在 Express 4 中未定义
req.user undefined in Express 4
我构建了一个应用程序,该应用程序使用 Oauth 向第三方 Jawbone 应用程序进行身份验证。我试图在我的一条路线中从 req.user
中拉出 req.user.jawbone.token
;但是,我收到一条错误消息,指出 req.user
未定义。我在 express 3 中使用它,但在升级到 express 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
}));
对于遇到此问题的任何其他人,问题是由于我的中间件顺序错误。我重新排列到下面,它工作正常
app.use(session({
store: new MongoStore({
url: mongoUrl
}),
secret: 'password',
resave: false,
saveUninitialized: true
}));
app.use(passport.initialize());
app.use(passport.session());
我构建了一个应用程序,该应用程序使用 Oauth 向第三方 Jawbone 应用程序进行身份验证。我试图在我的一条路线中从 req.user
中拉出 req.user.jawbone.token
;但是,我收到一条错误消息,指出 req.user
未定义。我在 express 3 中使用它,但在升级到 express 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
}));
对于遇到此问题的任何其他人,问题是由于我的中间件顺序错误。我重新排列到下面,它工作正常
app.use(session({
store: new MongoStore({
url: mongoUrl
}),
secret: 'password',
resave: false,
saveUninitialized: true
}));
app.use(passport.initialize());
app.use(passport.session());