【问题标题】:Creating Remote Methods at run time?在运行时创建远程方法?
【发布时间】:2015-11-14 13:37:34
【问题描述】:
  • 我们陷入了这样一种情况,即我们想在运行时使用环回创建“远程方法”?这样任何客户端都可以在运行时创建自己的安全路由,而无需重新加载服务器。

  • 另外,我们如何将 ACL 添加到运行时添加的远程方法中?

【问题讨论】:

    标签: node.js express loopbackjs strongloop


    【解决方案1】:

    首先,远程方法是在运行时添加的,尽管是在启动时。您可以在 common/models 文件夹中的 model.js 中定义它们。您可以在docs 中查看它们。如果有任何问题,请尝试添加远程方法并显示您的代码。

    其次,您可以通过两种方式将 ACL 添加到您的代码中:

    • 使用DataSource的createModel()函数:

      var Customer = ds.createModel('Customer', { name: { type: String, acls: [ { principalType: ACL.USER, principalId: 'u001', accessType: ACL.WRITE, permission: ACL.DENY }, { principalType: ACL.USER, principalId: 'u001', accessType: ACL.ALL, permission: ACL.ALLOW } ] } }, { acls: [ {principalType: ACL.USER, principalId: 'u001', accessType: ACL.ALL, permission: ACL.ALLOW} ] });

    • 在您的情况下,您可以在 model.js 中使用 ACL 的 create() 函数

      ACL.create({principalType: ACL.USER, principalId: 'u001', model: 'User', property: ACL.ALL, accessType: ACL.ALL, permission: ACL.ALLOW}, function(err, acl) {...});

      ACL.create({principalType: ACL.USER, principalId: 'u001', model: 'User', property: ACL.ALL, accessType: ACL.READ, permission: ACL.DENY}, function(err, acl) {...});

    您可以在docs 中阅读有关在运行时添加 ACL 的信息。

    【讨论】:

      猜你喜欢
      • 2012-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      相关资源
      最近更新 更多