【问题标题】:loopback - authorize GET Users?环回 - 授权 GET 用户?
【发布时间】:2018-10-06 13:08:10
【问题描述】:

我有一个使用 postgres 进行环回的项目,默认情况下我无权获取用户(错误 401)。我的 common/models 上没有 user.json 和 user.js。
如何更改 User 模型的 acl?
经过一些研究,我想我明白有些人重新创建了一个 user.json 然后迁移它?这是覆盖acl的方法吗?

【问题讨论】:

    标签: postgresql loopbackjs loopback


    【解决方案1】:

    用户 ACL(和大多数 acls)在 DENY * 上工作,并为必要的情况添加例外。如果您不想扩展可以使用的默认模型。

    'use strict';
    
    var loopback = require('loopback');
    var boot = require('loopback-boot');
    
    var app = module.exports = loopback();
    
    app.start = function() {
      // start the web server
      return app.listen(function() {
        app.emit('started');
        var baseUrl = app.get('url').replace(/\/$/, '');
        console.log('Web server listening at: %s', baseUrl);
    
        // Allow GET Users
        const User = app.models.User;
        User.settings.acls.push(
          {
            'principalType': 'ROLE',
            'property': 'find',
            'principalId': '$everyone',
            'permission': 'ALLOW'
          }
        );
    
    
        if (app.get('loopback-component-explorer')) {
          var explorerPath = app.get('loopback-component-explorer').mountPath;
          console.log('Browse your REST API at %s%s', baseUrl, explorerPath);
        }
      });
    };
    
    // Bootstrap the application, configure models, datasources and middleware.
    // Sub-apps like REST API are mounted via boot scripts.
    boot(app, __dirname, function(err) {
      if (err) throw err;
    
      // start the server if `$ node server.js`
      if (require.main === module)
        app.start();
    });
    

    【讨论】:

    • 遗憾的是并没有改变什么
    • 你是放在启动脚本还是server.js?我现在在一个空白的环回项目上使用它,它正在工作。
    • 哦,我把它放在一个文件中并执行它,以为它会永久覆盖它。现在我在 server.js 中有它,它可以工作了。非常感谢!!
    猜你喜欢
    • 2016-09-25
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多