【问题标题】:backbone.js + require.js + user authentication主干.js + require.js + 用户认证
【发布时间】:2012-05-20 19:57:51
【问题描述】:

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

不确定如何为具有用户身份验证的 Web 应用构建文件。

看起来应该是这样的:

  1. 在应用初始化时,查询服务器以检查身份验证会话状态;
    • Q#1:我应该在哪里编写这个“初始化后”会话代码 - 在 /js/app.js 中?
    • Q#2:我应该为此使用 jQuery ajax,还是有更好的主干.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 文件中?

感谢您的帮助。

编辑:我使用来自modular-backbone 示例的文件来创建我的网络应用程序。所以当我说 /js/app.js 和 js/router.js 时,我指的就是这些文件。

【问题讨论】:

  • 对于 Q3:您不能创建用户模型,然后在构建这些视图时将其传递给相关视图吗?
  • 另外,你的意思是你只能在定义中引用它时创建一个新模型?发布该模型代码的 sn-p?
  • 我正在使用模块化主干的结构。所以在我的 app.js 中,我正在创建 var credentials = new authModel()。据我了解,然后我必须在登录视图中访问这个credentials var。但凭据不是全局变量,因此在登录视图中凭据为空 - 看不到任何数据。

标签: backbone.js requirejs


【解决方案1】:

我也有同样的情况。 我找到了this post,似乎在每次请求之前做某事的最佳选择是使用this solution

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

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

  1. 在您的主文件 'require.config' -> 'paths' 添加插件位置 (jqueryCokkie:)
  2. 在您的视图中的“定义”下添加路径名(“jqueryCookie”)并将其传递给函数
  3. .js 文件应该在following structure 中(我尝试在此处粘贴代码示例,但出现问题...)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多