2

我有点不确定如何在 Backbone.js 中为登录/注销控件设置功能。

这就是我的想法,但我不确定这是否可以,或者这个架构是否存在问题:

  • Model是当前用户。如果模型在执行 a 时得到HTTP 404响应fetch(),则“当前用户”应该是匿名用户。如果不是,则Model保存当前用户的信息。
  • View: _
    • 如果当前用户为“匿名”,则显示用户名和密码输入框;和一个“登录”按钮。
    • 如果当前用户是有效用户,则视图显示当前用户的用户名和“注销”按钮。

当按下“登录”和“注销”按钮时,我不确定如何处理模型。是否应该通过模型的功能完成登录和注销fetch(),或者这些操作是否应该触发不同的 POST 请求,其成功结果要么填充Model要么 要求Model执行另一个fetch()

任何输入表示赞赏,非常感谢!

4

2 回答 2

1

这可能有点出乎你的意料,但这就是我如何做到的:

我不确定你为什么需要模型本身,我对你如何使用它感到困惑。因此,我无法用“模型”来构建我的答案。

所以我是这样做的:

在视图中:只是用于登录/注销的文本框。

单击“登录”时,使用用户名/密码向服务器发送 POST 请求(希望不是明文:)

如果服务器的响应是 200 更改window.location您希望看到的目标页面,否则显示“无效的用户名/密码”(当然“下一页”页面或应用程序中的任何其他页面应检查用户是否已登录。如果不,显示登录页面)。

这是最简单的解决方案恕我直言。我不确定为什么需要为用户提供模型?那是“在”登录之后吗?然后,您可以生成并保留它,或者将其作为上述 200 响应的一部分发送。但是该模型不会在页面更改时保持不变。可以这么说,最好在“下一页”页面上重新创建模型。

(我假设页面更改而不是页面加载$.load- 如果是后者,那么您始终可以重用该模型)。

希望这是有道理的。如果没有,请您澄清模型的意图,也许我可以相应地更新我的答案。

于 2012-08-07T02:31:26.137 回答
1

我一直和你一样的情况。您应该关注这篇关于您正在寻找的内容的博客文章。它提供了有关如何处理错误和一些安全问题的更多信息。

http://42floors.com/blog/posts/user-authentication-with-rails-and-backbone-js

于 2012-08-07T06:44:41.953 回答