【发布时间】:2013-05-02 08:12:42
【问题描述】:
我的问题与这个one类似,但没有深入了解他的解决方案。
我正在使用 Passport 通过 Instagram 进行身份验证。验证成功后,用户被定向到“/”。此时,请求具有用户对象(又名它正在工作)。但是,一旦我重定向, req.user 是未定义的。 :'(
奇怪的是,每个请求都会调用 passport.deserializeUser。它成功地获取了用户对象,但是在中间件的某个地方,req.user 没有被设置(或被取消设置)。
// on successful auth, goto "/"
app.get('/', function(req, res) {
// if the request has the user object, go to the user page
if (req.user) {
res.redirect("/user/" + req.user._id);
}
res.render("index");
}
app.get('/user/:uid', function(req, res) {
console.log(req.user) // undefined
}
【问题讨论】:
-
你能发布你的应用程序的配置吗?尤其是中间件 (
app.use(...))。可能是您的会话 cookie 过期时间太短,或者您的中间件顺序错误。 -
中间件排序很可能是这里的问题
-
我完全按照他们在 Passport 配置页面中解释的方式执行中间件,但仍然面临同样的问题 o.O
-
您找到解决方案了吗?
-
我遇到了同样的问题。我无法让它工作,似乎 req.user 每次都被重置
标签: node.js express passport.js