在手动更改路由后,mediator.user会丢失

我正在用护照本地身份validation构build一个单页面应用程序。 用户在app.post "/login"进行身份validation并返回。返回app.post "/login"后,我将其保存在Chaplin.mediator.user (如在facebook-example中所见)。 只要我不手动更改URL,一切正常,但是当我更改URL并按回车键时,应用程序会被重新加载,但使用不同的路由 – >前端没有用户。

我现在正在做的是每次我手动改变路由,我发送一个请求到服务器,并要求req.user用户。 收到用户后,应用程序继续其工作stream程。 它的工作原理,但我不认为这是如此。 如果您不等待响应,则最终没有用户对象,尽pipe您已login。

我怎么解决这个问题?

编辑:我结束了保存用户在一个单独的cookie。 这是我如何保存用户:

  $.cookie.json = true; $.cookie 'user', user.toJSON() 

这是我加载页面后如何提取用户:

  userCookie = $.cookie 'user' if userCookie? mediator.user = new Model JSON.parse userCookie 

你需要使用jquery-cookie插件来使其工作。 如果用户注销,请不要忘记删除Cookie。 当然,我对其他想法仍然持开放态度。

您应该在本地存储用户(又名会话)。 当Backbone应用程序加载时,如果实际上已经login,则应该将用户路由到正确的位置。