【问题标题】:LoopBack API - Built-in Models and PersistenceLoopBack API - 内置模型和持久性
【发布时间】:2016-10-09 15:06:51
【问题描述】:

我想构建一个 API,使用 Google 身份验证(通过 loopback-component-passport)和 ACL 进行访问控制。我还需要扩展标准用户模型,因为我有一些额外的数据字段。

默认情况下,UserAccessTokenACLRoleMappingRole 模型使用内存存储,即一旦应用重新启动,数据将丢失。所以,我的问题是:

  1. 要将数据持久化到 MySQL,我需要 automigrate 这些模型从内存到 MySQL 数据源。但是,如果我要将User 模型扩展为StaffUser,我是否需要在数据库中同时拥有UserStaffUser 的表?或者,我是否将User 保留在内存中,StaffUser 保留在 MySQL 中?

  2. 护照组件添加自己的模型(UserIdentityUserCredentialApplicationCredentialPassportConfigurator)。是否有任何理由将这些保留在 MySQL 中,还是我将这些保留在内存中?

【问题讨论】:

    标签: mysql node.js api strongloop loopback


    【解决方案1】:

    要将数据持久化到 MySQL,我需要将这些模型从内存中自动迁移到 MySQL 数据源。但是,如果我要将 User 模型扩展为 StaffUser,我是否需要在 DB 中同时拥有 User 和 StaffUser 的表?或者,我是否将用户保留在内存中,并将 StaffUser 保留在 MySQL 中?

    我认为您不需要将这些模型从内存中自动迁移到您的数据源。相反,您应该将应用程序的 model-config.json 中模型的 dataSource 属性从默认的内存中更改为您定义的数据源。如果您的应用仅使用StaffUser 而不需要User,您可能不需要将 User 放入 MySQL。

    护照组件添加自己的模型(UserIdentity、UserCredential、ApplicationCredential、PassportConfigurator)。是否有任何理由将这些保留在 MySQL 中,还是我将这些保留在内存中?

    Strongloop article 中的“连接器”部分表示内存数据源仅适用于开发和调试目的。我们不应该让与登录相关的信息存在于内存中,并让它们在应用重启时消失。

    【讨论】:

      猜你喜欢
      • 2012-12-11
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      相关资源
      最近更新 更多