【问题标题】:Strongloop/loopback: how to disable authentication for User model over REST?Strongloop/loopback:如何通过 REST 禁用用户模型的身份验证?
【发布时间】:2019-02-28 16:09:14
【问题描述】:

我已在命令行输入:slc loopback:acl 并禁用了 User 模型的所有安全性。

进入 strongloop explorer,做一个简单的 GET 用户请求给我一个 401 授权要求错误。

任何想法如何打开用户对象?这是一个已知的错误吗?

谢谢

【问题讨论】:

  • 可以通过扩展用户模型并为您的自定义模型设置权限,但是.. 我绝不建议您这样做。您为什么要打开用户或任何其他安全相关模型?这样做没有意义,因为目的是保护您的应用程序。通过打开此模型或任何其他与安全相关的模型,您的应用程序将完全不受保护。私人用户数据也将暴露给所有人。也许您正在尝试做其他事情?
  • 我理解您的担忧。这只是为了开发。我想在项目结束时添加登录/安全功能。所以我想暂时禁用。

标签: loopbackjs strongloop


【解决方案1】:

您可以像这样扩展您的用户模型并为您的自定义模型设置权限:

{
  "name": "CustomUser",
  "base": "User",
  "idInjection": true,
  "properties": {},
  "validations": [],
  "relations": {},
  "acls": [
    {
      "accessType": "READ",
      "principalType": "ROLE",
      "principalId": "$unauthenticated",
      "permission": "ALLOW"
    },
    {
      "accessType": "READ",
      "principalType": "ROLE",
      "principalId": "$authenticated",
      "permission": "ALLOW"
    },
    {
      "accessType": "*",
      "principalType": "ROLE",
      "principalId": "$owner",
      "permission": "ALLOW"
    }
  ],
  "methods": []
}

但我绝不会建议你这样做。

【讨论】:

  • 如果不建议这样做,您能否解释一下如何实现这样的场景:具有管理员权限的用户必须使用 lb-ng 提供的 angular-sdk 查看列表中的所有用户。在创建/注册新用户时检查重复的用户名。无论进行何种尝试都会导致未经授权的错误。另外,针对同一stackoverflow.com/questions/31907774/… 发布了一个问题
【解决方案2】:

如果你真的想禁用 User 模型上的端点,你可以这样做。

转到您的model.config.json 并将"public": false 添加到User 字段,如下所示:

...

  "User": {
    "public": false,
    "dataSource": "db"
  },
...

【讨论】:

    猜你喜欢
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 2018-03-03
    • 2014-02-07
    • 2019-08-31
    • 2015-11-08
    相关资源
    最近更新 更多