【发布时间】:2016-05-10 01:56:56
【问题描述】:
我正在为一所学校开发一个应用程序,我决定使用 Loopback 开发我的 Web Api。我的应用有两种用户:教师和学生。我注意到 Loopback 默认为我提供了一个用户模型,而且似乎无法更改。我该如何实施?制作另外 2 个教师和学生表并将它们与用户表相关联?如果我这样做,我可以设置安全规则然后使用这个表吗?我该怎么做?
非常感谢
【问题讨论】:
标签: node.js rest loopbackjs strongloop
我正在为一所学校开发一个应用程序,我决定使用 Loopback 开发我的 Web Api。我的应用有两种用户:教师和学生。我注意到 Loopback 默认为我提供了一个用户模型,而且似乎无法更改。我该如何实施?制作另外 2 个教师和学生表并将它们与用户表相关联?如果我这样做,我可以设置安全规则然后使用这个表吗?我该怎么做?
非常感谢
【问题讨论】:
标签: node.js rest loopbackjs strongloop
除非loopback:user 之间存在巨大差异,否则无需创建不同的用户表,因为环回提供了很多内置帮助程序(电子邮件验证、密码恢复、密码强度、唯一用户名)。在您的情况下,您最好使用角色,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"
}
【讨论】: