我有点不确定如何在Backbone.js.中设置登录/注销控件的功能
这就是我的想法,但我不确定这是否可以,或者这个架构是否存在问题:
Model
是当前用户。如果模型在执行fetch()
时得到HTTP 404
响应,那么"当前用户"应该是匿名用户。如果不是,则Model
保存当前用户的信息View
:- 如果当前用户是"匿名"用户,则会显示用户名和密码的输入框;和一个"登录"按钮
- 如果当前用户是有效用户,则视图将显示当前用户的用户名和"注销"按钮
当按下"登录"one_answers"注销"按钮时,我不知道该如何处理该模型。登录和注销应该通过模型的fetch()
功能来完成,还是这些操作应该触发不同的POST请求,其成功结果要么填充Model
,要么要求Model
再执行一个fetch()
?
感谢您的任何意见,非常感谢!
这可能有点出乎意料,但我就是这样做到的:
我不知道你为什么需要这个模型本身,我也不知道你是如何使用它的。因此,我无法将"模型"作为我的答案。
我是这样做的:
在视图中:只有用于登录/注销的文本框。
点击"登录",用用户名/密码向服务器发送POST请求(希望不是明文:)
如果服务器的响应是200,则将window.location
更改为您希望看到的目标页面,否则显示"无效用户名/密码"(当然,应用程序中的"下一个"页面或任何其他页面都应该检查用户是否已登录。如果未登录,则显示登录页面)。
这是IMHO最简单的解决方案。我不知道你为什么需要为用户提供模型?那是"之后"登录吗?然后,您可以生成并保存它,或者将其作为上面200响应的一部分发送。但该模型不会在整个页面更改过程中保持不变。可以说,最好在"下一页"上重新创建模型。
(我假设是页面更改,而不是像$.load
中那样进行页面加载——如果是后者,那么您总是可以重用该模型)。
希望这是有道理的。如果没有,你能澄清一下模型的意图吗?也许我可以相应地更新我的答案。
我的处境和你一样。你应该关注这篇关于你正在寻找什么的博客文章。它提供了有关如何处理错误和一些安全问题的更多信息。
http://42floors.com/blog/posts/user-authentication-with-rails-and-backbone-js