Node.js和Backbone.marionette初始视图

时间:2013-03-12 20:06:08

标签: node.js backbone.js marionette passport.js

目前,我有一个 Node.js 应用程序服务于我的静态/login&使用我的服务器端模板语言的/index HTML页面(在这种情况下, jade )。我想在成功验证后返回有关当前登录用户的数据,因此骨干可以开始呈现内容。

例如,我在 Mongo 中有一个UserGroup文档,用于存储有关User及其所属组的信息(授权信息 )。

使用 Passport ,我可以对用户进行身份验证并将其重定向到主页面。

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

重定向后,如何在/主干路由的初始呈现中发送骨干网将会获取的用户数据?

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

2 个答案:

答案 0 :(得分:0)

您需要来自客户的打开请求。尝试查看socket.io以维护页面和服务器之间的连接。如果这太多了,请尝试用骨干网发出一个AJAX请求,让服务器“抓住”请求,直到登录成功,然后在准备就绪时发送响应。但是,将ajax请求与登录请求相匹配将是一个挑战。

答案 1 :(得分:0)

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