在使用koa-passport登录用户后,为什么ctx.state.user未定义

时间:2017-04-17 14:51:04

标签: passport.js koa

我正在使用koa-passport来处理我的反应应用中的本地注册/登录。我试图在没有重定向的情况下设置本地身份验证,因为我想在客户端处理路由。 我的问题:当我成功验证并登录用户后向服务器发送请求时,我没有得到我希望获得的ctx.state.user对象。 这是我的初次登录:

router.post('/login/local', passport.authenticate('local-login', function(err, user, info) {
  if (err) // handle error
  else if (!user && info) // handle no user
  else {
    // handle successful login
    ctx.login(user);
  }
}));

然后,我想访问登录用户,如下所示:

router.get('/profile', (ctx) => {
  // ctx.state.user is undefined
}

但是ctx.state中没有用户属性。这不应该是这样的方式还是我错过了什么?

1 个答案:

答案 0 :(得分:0)

我发现了问题: 我没有从客户端发回cookie。在我的提取中,我必须设置credentials: 'include'才能使其正常工作,因为我使用koa-cors,所以我必须指定允许cookie。