【问题标题】:mediator.user is lost after route is changed manually手动更改路由后 mediator.user 丢失
【发布时间】:2015-01-07 00:46:51
【问题描述】:

我正在构建一个带有护照本地身份验证的单页应用程序。 用户经过身份验证并在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 plugin 才能使其工作。如果用户注销,请不要忘记删除 cookie。当然,我仍然对其他想法持开放态度。

【问题讨论】:

    标签: node.js backbone.js express passport.js chaplinjs


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-04-28
      • 1970-01-01
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      相关资源
      最近更新 更多