我有一个教学网站,我想创建一些可供任何注册成员(学生和教师)访问的页面和一些仅限特定成员(教师)访问的页面。我为教师和学生创建了两个成员角色,以防止其中一个进入为另一个指定的页面,因为它们在同一个数据库中(私有成员数据),我遵循手动将成员添加到成员角色的方法。但是我不想手动做,我想要的是:当一个人注册网站时,确定他是老师还是学生,不允许学生访问教师页面,以及教师.有没有办法做到这一点!
我试过assignrole()代码但是没有用,用户没有被分配角色。
参考:https://www.wix.com/velo/reference/wix-users-backend/roles-obj/assignrole
这是我的代码:
role.jsw:
import {roles} from 'wix-users-backend';
export function assignRole(roleId, memberId) {
return roles.assignRole(roleId, memberId, { suppressAuth: false })
.then( () => {
console.log("Role assigned to member");
})
.catch((error) => {
console.log(error);
});
}
注册页面代码:
import {assignRole} from 'backend/role';
function registerTeacher() {
let email = $w("#email").value;
let password = $w("#password").value;
let first = $w("#fname").value;
let last = $w("#lastName").value;
wixUsers.register(email, password, {
contactInfo: {
"firstName": first,
"lastName": last
}
})
.then((results) => {
let roleId="be13f34e-cf4a-4f33-ae7f-c2313d824206";//Teacher role
assignRole(roleId, results.user.id);
}
});
请帮忙!
答案 0 :(得分:0)
已解决:我需要做的唯一更改是:suppressAuth: true
export function assignRole(roleId, memberId) {
return roles.assignRole(roleId, memberId, { suppressAuth: true })
.then( () => {
console.log("Role assigned to member");
})
.catch((error) => {
console.log("failed to assing role"+ error);
});
}