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