Node + Express + Passport:req.user 未定义 [英] Node + Express + Passport: req.user Undefined

查看:23
本文介绍了Node + Express + Passport:req.user 未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

My question is similar to this one, but there was no insight into his solution.

我正在使用 Passport 使用 Instagram 进行身份验证.认证成功后,用户被定向到/".此时,请求具有用户对象(也就是它正在工作).但是,一旦我重定向, req.user 就未定义.:'(

I'm using Passport to auth using Instagram. After successful auth, users are directed to "/". At this point, the request has the user object (aka it's working). However, once I redirect, the req.user is undefined. :'(

奇怪的是,每次请求都会调用passport.deserializeUser.它已成功获取用户对象,但在中间件道路上的某处,未设置(或未设置)req.user.

The odd part is that passport.deserializeUser is being called with each request. It's successfully getting the user object, but somewhere along the middleware road, req.user is not being set (or being unset).

// 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
}

推荐答案

您是否为您的应用设置了会话状态?如果你还没有,你需要这样的东西......

Have you set up session state for your app? If you haven't, you need something like this...

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

这篇关于Node + Express + Passport:req.user 未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆