backbone.js + require.js +用户认证

时间:2012-05-20 19:57:51

标签: backbone.js requirejs

开始学习backbone.js和require.js。

不确定如何使用用户身份验证为Web应用程序构建文件。

似乎它应该像这样流动:

  1. 在app init上,查询服务器以检查auth会话状态;
    • 问题1:我应该在init'会话代码后写这个 - 在/js/app.js?
    • 问题2:我应该为此使用jQuery ajax,还是有更好的backbone.js方法(我在例子中看到了对get(),fetch(),toJSON()的引用)?
  2. 如果成功,请将auth数据存储在模型中(user_id,username,auth_token)。
    • 问题3:我如何/在哪里创建这个模型,以便我可以在整个模块中访问这些数据?即。我将有一个视图显示'isLoggedIn.html'的模板,该模板将显示为“Hello%username%!Logout”。我想从此模型访问“用户名”字段。目前,我只看到如何通过在视图的define []中引用它来创建一个新模型,所以我不知道如何访问在init期间创建的模型。
  3. 将使用jQuery $ .cookies来保存并获取此身份验证数据,因此如果用户离开页面并返回,我可以查询服务器以检查会话而不是要求用户再次登录。
    • 问题4:如何在这个requirejs应用程序中加入jquery.cookies.js插件,以便我以后可以像往常一样使用$ .cookies?我应该将此插件添加到define []列表中吗?我是否必须将其添加到/js/jquery/loader.js文件中?
  4. 感谢您的协助。

    修改:我使用了modular-backbone示例中的文件来创建我的网络应用。所以当我谈论/js/app.js和js / router.js时,那就是我所引用的文件。

1 个答案:

答案 0 :(得分:2)

我也处于同样的境地。 我找到this post,在每个请求使用this solution之前,似乎是做某事的最佳选择。

在访问和除了/ login之外的URL之前,我将通过cookie进行身份验证或运行登录视图。

关于包含其他文件夹(jQuery cookie)的方法 - 只需使用require.js机制:

  1. 在主文件'require.config'中 - > 'paths'添加插件位置(jqueryCokkie:)
  2. 在“定义”下的视图中添加路径名称('jqueryCookie')并将其传递给finction
  3. .js文件应该在following structure中(我试图在这里粘贴代码示例,但是遇到了问题......)。