javascript - 除了 Marionette 应用程序之外还可以进行登陆/身份验证

标签 javascript ajax backbone.js marionette

两者Derick BaileyDavid Sulc当时非常确定将登陆页面和身份验证逻辑(+登录/注册表单)与实际的 Marionette 应用程序分开。但是,我无法找到任何示例或解释来说明如何处理此问题,因此我没有什么疑问:

更改 INDEX.HTML

  1. index.html 将不再加载 Marionette 应用程序。这意味着,当加载 example.com 时,即使用户经过身份验证(localStorage 存储了他的 token 凭据),我们最终也会看到一个简单的登录页面。我知道这个简单的登陆应该以某种方式处理,如果用户已存储凭据,则应立即将用户重定向到 app.html,该 app.html 将实际加载 Marionette 应用程序,以及用户帐户和最初访问的路线。换句话说:

      1. 存储 URL 片段。
    • 检查用户是否已登录
  • 如果用户已登录,则加载 app.html,这将加载应用程序(如何加载特定路线的应用程序?)
  • 如果用户未登录,则不执行任何操作
  • 登录

  • 在用户未登录并登录的情况下。无论index.html 是否具有登录表单或我们已将用户重定向到login.html,我们的身份验证逻辑都必须独立于应用程序。这意味着 login.html 必须包含一个 .js,它将针对 API 进行 ajax 调用。
      1. 用户输入凭据
    • AJAX 调用来检查凭据
    • 如果 API 返回 token ,则将凭据存储在 localStorage 中并加载 app.html(这将加载 marionette 应用程序)
  • 注册

  • 用户在/signup signup.html 或 index.html 进行注册(如果其中包含注册表单)。无论加载哪种 HTML,它都必须包含必要的 js 逻辑,以便为新用户对 API 进行 ajax 调用。
      1. 用户输入新帐户数据
    • 我们的独立js对API进行ajax调用
    • 如果创建成功,我们会将数据存储到 localStorage 并加载 app.html(加载应用程序)
    • 如果没有,我们会显示错误
  • <小时/>

    你会说我错过了这个问题。我的问题是,这些工作流程正确吗?

    1. 您通常使用哪种工作流程?
    2. 如何在 marionette 应用项目文件夹中构造此代码?
    3. 如果您知道 github 上有任何关于如何实现此目的的简单示例,我将非常乐意了解它们!

    最佳答案

    好吧,万一有人偶然发现这个问题,我最终决定在 Marionette 应用程序中使用登陆/身份验证逻辑。这样我就可以让我的后端仅是一个 API REST,并且我不需要任何其他后端来为我提供更多页面。

    关于javascript - 除了 Marionette 应用程序之外还可以进行登陆/身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28143732/

    相关文章:

    javascript - Windows.event 未定义 - Firefox 中的 Javascript 错误

    javascript - 如何更改 JointJS 中自定义对象的属性?

    javascript - 如何使用 jQuery 动态地在主页中的外部页面之间建立链接?

    java - GWT - 如何组织项目以拥有多个网页和它们之间的导航

    javascript - 如何在ajax中使用延迟方法来加速从php脚本加载数据?

    javascript - jquery.dataTables.min.js :48 Uncaught TypeError: Cannot read property 'length' of undefined

    javascript - Backbone.js 路由器 : hide in page modal instead of going back when back is pushed

    backbone.js - Marionette.CompositeView 如何在不使用任何模型的情况下将参数传递给模板

    javascript - 选择选项,显示 Bootstrap 模式,确认删除,然后通过 Ajax 从数据库中删除

    javascript - pop 函数不是从蛇数组中取出尾部吗?