我必须手动添加 loopback-component-passport 的核心模型吗?

Do I have to add loopback-component-passport's core models manually?

我安装了 loopback-component-passport,因此我可以将它与 strongloop 的环回框架一起使用。我关注了docs, 但执行此命令后:npm install loopback-component-passport,未创建以下 files/models:

UserIdentity model
UserCredential model
ApplicationCredential model

Loopback 使用这些文件进行第三方身份验证。我必须手动添加它们吗?还是我做错了什么?

我认为内置模型的环回隐藏在 node_modules 中,因此假设您的意思是数据存储中缺少这些表,您可以执行自动更新以获得环回以构建任何缺失的表。

我在开发过程中需要时将以下代码添加到 server/boot 目录中的文件中。

module.exports = function(app, done) {
  app.datasources.mysql_db.autoupdate(function(err) {
    if (err) throw err;
    console.log("autoupdate");
    done();
  })
}

其中 mysql_db 是您的数据存储的名称。

这将在服务器启动时更新数据源,但不应删除现有数据(说我已经看到外键丢失的情况,因此仍然需要注意和数据库备份)。

是的,您必须手动添加它们。你可以参考这个例子,loopback-example-passport on github.

原因是 loopback-component-passport 的核心模型的关系,即 UserIdentity modelUserCredentialApplicationCredential 与 Loopback 的核心模型 AccessToken并且 User 没有预先配置,这是身份验证所必需的。

此外,您可能会注意到开发人员扩展了模型但没有添加任何模型 model.js。这是因为不需要添加任何运行时逻辑。对于初学者,您可能希望根据示例扩展核心模型,并 创建 relationshipacls。然后您可以继续自定义逻辑。