一尘不染

节点+ Express +护照:要求用户未定义

node.js

我的问题是类似这样的一个,但没有深入了解他的解决方案。

我正在使用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
}

阅读 238

收藏
2020-07-07

共1个答案

一尘不染

您是否为应用设置了会话状态?你需要这样的东西…

app.use(session({ secret: 'anything' }));
app.use(passport.initialize());
app.use(passport.session());
2020-07-07