我构建了一个使用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
}));
答案 0 :(得分:1)
对于遇到此问题的其他任何人来说,问题是由于我的中间件处于错误的顺序。我重新安排到下面,它正常工作
app.use(session({
store: new MongoStore({
url: mongoUrl
}),
secret: 'password',
resave: false,
saveUninitialized: true
}));
app.use(passport.initialize());
app.use(passport.session());