环回 - 如何实现不同类型的用户

时间:2016-05-09 17:05:04

标签: node.js rest loopbackjs strongloop

我正在为学校开发一个应用程序,我决定使用Loopback开发我的Web Api。我的应用有两种用户:教师和学生。我注意到Loopback默认提供了一个用户模型,似乎无法更改。我该如何实现呢?制作另外两个表教师和学生并将它们与用户表相关联?如果我这样做,我能够设置安全规则然后使用这个表吗?我该怎么办?

非常感谢你

1 个答案:

答案 0 :(得分:2)

除非loopback:user之间存在显着差异,否则无需创建不同的用户表,因为loopback提供了许多内置帮助程序(电子邮件验证,密码恢复,密码强度,唯一用户名)。在您的情况下,您最好使用角色docs

//create user
User.create({
    username: 'Obama', 
    email: 'obama@doe.com', 
    password: 'opensesame'
}, function(err, user) {
    if (err) return cb(err);

    //create the teacher role
    Role.create({
      name: 'teacher'
    }, function(err, role) {
      if (err) cb(err);

      //make obama a teacher
      role.principals.create({
        principalType: RoleMapping.USER,
        principalId: user.id //obama id
      }, function(err, principal) {
        cb(err);
      });
    });
  });

然后,如果您想要一些路线(让课程)只能为教师访问,那么将配置添加到models/lesson.json模型

{
  "accessType": "EXECUTE",
  "principalType": "ROLE",
  "principalId": "teacher", // <== role
  "permission": "ALLOW",
  "property": "find" 
}