我正在构建一个带有护照本地身份验证的单页应用程序。用户经过身份验证并在返回用户对象app.post "/login"
后返回,我将其保存在其中Chaplin.mediator.user
(如 facebook-example 中所示)。只要我不手动更改 URL,一切正常,但是当我更改 URL 并按 Enter 时,应用程序会再次加载,但是使用不同的路由 --> 前端没有用户。
我现在正在做的是每次手动更改路由时,我都会向服务器发送请求并在req.user
. 收到用户后,应用程序继续其工作流程。它有效,但我认为这不是它的本意。如果您不等待响应,尽管您已登录,但您最终将没有用户对象。
我怎么解决这个问题?
编辑:我最终将用户保存在单独的 cookie 中。这就是我保存用户的方式:
$.cookie.json = true;
$.cookie 'user', user.toJSON()
这就是我在页面加载后提取用户的方式:
userCookie = $.cookie 'user'
if userCookie?
mediator.user = new Model JSON.parse userCookie
您需要jquery-cookie 插件才能使其工作。如果用户注销,请不要忘记删除 cookie。当然,我仍然对其他想法持开放态度。