如何在Loopback中使用mysql正确扩展用户

时间:2014-09-11 06:02:27

标签: mysql loopbackjs

我对loopback很新。我正在制作我的第一个应用程序,我将我的数据源更改为MySql。我的模特看起来像这样

person.json

{
  "name": "Person",
  "plural": "People",
  "base":"User",
  "properties": {
    "firstName": {
      "type": "string",
      "required": true
    },
    "lastName": {
      "type": "string",
      "required": true
    },
    "username": {
      "type": "string",
      "required": true
    },
    "email": {
      "type": "string",
      "required": true
    },
    "password": {
      "type": "string",
      "required": true
    }
  },
  "validations": [],
  "relations": {},
  "acls": [
    {
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "ALLOW",
      "accessType": "*"
    }
  ],
  "methods": []
}

datasource.json

{
  "db": {
    "name": "db",
    "connector": "memory"
  },
  "mysql": {
    "host": "localhost",
    "port": 3306,
    "database": "demo",
    "username": "demouser",
    "password": "****",
    "name": "mysql",
    "connector": "mysql"
  }
}

模型config.json

{
  "_meta": {
    "sources": [
      "../common/models",
      "./models"
    ]
  },
  "AccessToken": {
    "dataSource": "db",
    "public": false
  },
  "ACL": {
    "dataSource": "db",
    "public": false
  },
  "RoleMapping": {
    "dataSource": "db",
    "public": false
  },
  "Role": {
    "dataSource": "db",
    "public": false
  },
  "Person": {
    "dataSource": "mysql",
    "public": true
  }
}

在此之后,当我想创造任何人时,由于我未经授权,我无法创造任何人。我在mysql中插入了一个条目并尝试登录但没有运气。但当我删除User作为person的基础时,一切都顺利。但是我失去了从User继承的所有身份验证功能。如何正确地使用mysql作为数据源扩展User,以便我可以使用Person作为Users? 在此先感谢

1 个答案:

答案 0 :(得分:0)

您可以尝试添加以下ACL吗?

"acls": [
    {
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "ALLOW",
      "accessType": "*",
      "property": "create"
    }
  ],

您可以使用以下方法调试应用程序:

DEBUG = loopback:security:* node。