backbone.js + require.js + 用户身份验证

7

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

不确定如何为带有用户认证的Web应用程序构造文件结构。

似乎应该按照以下方式进行:

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

感谢您的帮助。

编辑:我使用了来自modular-backbone示例的文件来创建我的Web应用程序。因此,当我提到/js/app.js和js/router.js时,那就是我所指的文件。


1
对于第三季度:你不能创建用户模型,然后在构建这些视图时将其传递给相关视图吗? - Matt Wonlaw
另外,你说的什么意思是只有在定义中引用时才能创建新模型?能否贴出该模型代码的片段? - Matt Wonlaw
我正在使用modular-backbone中的结构。因此,在我的app.js中,我创建了var credentials = new authModel()。据我所知,我必须在登录视图中访问这个credentials变量。但是,credentials不是全局变量,因此在登录视图中,credentials为null - 看不到任何数据。 - codemonkey613
1个回答

2
我也处于同样的情况。 我发现 这篇帖子,看起来在每个请求之前做些什么的最佳选择是使用 这个解决方案
除了 /login 之外,访问任何 URL 之前,我都会通过 cookie 进行身份验证或运行登录视图。
关于如何包含其他文件夹(jQuery cookie)-只需使用 require.js 机制:
  1. 在您的主文件 'require.config' ->'路径'中添加插件位置(jqueryCokkie:)
  2. 在您的视图下 'define' 添加路径名称('jqueryCookie')并将其传递给函数
  3. .js 文件应该在 以下结构 中(我试图在此处粘贴代码示例,但遇到了问题…)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接