新成员加入wix时自动分配角色

Auto assign role when a new member joins in wix

我有一个教学网站,我想创建一些可供任何注册会员(学生和教师)访问的页面,以及一些仅限特定会员(教师)访问的页面。我为老师和学生创建了两个成员角色,以防止其中一个进入另一个指定的页面,因为他们在同一个数据库(私有成员数据)中,我按照手动添加成员的方法加入成员角色。但我不想手动做,我想要的是:当一个人注册到该站点时,确定他是老师还是学生,不允许学生访问教师页面以及教师.有办法吗!

我试过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);
    }
     });

请帮忙!

已解决:我唯一需要做的改变是: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);
 });
}