3

目前,我有一个Node.js应用程序,它使用我的服务器端模板语言(在本例中是)为我的静态/login和HTML 页面提供服务。我想在成功验证后返回有关当前登录用户的数据,以便骨干网可以开始呈现内容。/index

例如,我在MongoUserGroup中有一个文档,其中存储了关于它们所属的组的信息(授权信息)。User

使用Passport,我可以验证我的用户并将他们重定向到主页。

app.post('/login',
  passport.authenticate(
    'local',
    {
      successRedirect: '/',
      failureRedirect: '/login',
      failureFlash: true
    }
  )
);

/重定向后,我如何发送关于主干将在主干路由的初始呈现中拾取的用户的数据?

res.send()即使不是主干发起第一个请求或使用包含有关用户的元数据的会话,这是否也会如此。

4

2 回答 2

0

您需要有来自客户端的开放请求。尝试查看 socket.io 以维护页面和服务器之间的连接。如果那太多,请尝试使用主干发出 AJAX 请求,并让服务器“保留”请求直到登录成功,然后在准备好时发送响应。但是,将 ajax 请求与登录请求相匹配将是一个挑战。

于 2013-03-12T20:19:16.100 回答
0

我认为经过身份验证的用户将有一个与他相关联的 cookie。您可以在应用初始化时解析 cookie 并构造一个全局用户对象。或者,您可以在页面上的脚本标记中以 json 格式发出用户详细信息,并使用它来构建 currentUser 对象。我不确定这是否是最好的方法;我自己正在研究它。很想听听对此的想法/反馈。

于 2013-03-21T23:27:02.893 回答