7

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

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

似乎它应该像这样流动:

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

谢谢您的帮助。

编辑:我使用模块化主干示例中的文件来创建我的网络应用程序。因此,当我谈论 /js/app.js 和 js/router.js 时,这就是我所指的文件。

4

1 回答 1

2

我也有同样的情况。我找到了这篇文章,似乎在每个请求之前做某事的最佳选择是使用这个解决方案

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

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

  1. 在您的主文件 'require.config' -> 'paths' 添加插件位置 (jqueryCokkie:)
  2. 在“定义”下的视图中添加路径名(“jqueryCookie”)并将其传递给函数
  3. .js 文件应采用以下结构(我尝试将代码示例粘贴到此处,但出现问题...)。
于 2012-06-14T08:27:34.607 回答