在手动更改路由后,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,则应该将用户路由到正确的位置。