用户角色:node.js express sequelize react.js

用户角色:node.js express sequelize react.js,node.js,reactjs,express,sequelize.js,Node.js,Reactjs,Express,Sequelize.js,我正在使用关于bezkoder的本教程创建用户角色。但是,默认情况下,用户在注册期间被赋予角色:1[subscriber]。 我对很多这方面都不熟悉,所以我不确定需要做多少更改才能创建两个注册页面:一个将自动向角色1[subscriber]注册用户,另一个将自动向角色2[expert]注册用户 前端 后端 我认为该角色在控制器中被自动注册为1,但我甚至不确定这是记录该角色的地方。非常感谢您的帮助 exports.signup = (req, res) => { // Save Us

我正在使用关于bezkoder的本教程创建用户角色。但是,默认情况下,用户在注册期间被赋予角色:1[subscriber]。 我对很多这方面都不熟悉,所以我不确定需要做多少更改才能创建两个注册页面:一个将自动向角色1[subscriber]注册用户,另一个将自动向角色2[expert]注册用户

前端

后端

我认为该角色在控制器中被自动注册为1,但我甚至不确定这是记录该角色的地方。非常感谢您的帮助

exports.signup = (req, res) => {
  // Save User to Database
  User.create({
    username: req.body.username,
    email: req.body.email,
    password: bcrypt.hashSync(req.body.password, 8)
  })
    .then(user => {
      if (req.body.roles) {
        Role.findAll({
          where: {
            name: {
              [Op.or]: req.body.roles
            }
          }
        }).then(roles => {
          user.setRoles(roles).then(() => {
            res.send({ message: "User was registered successfully!" });
          });
        });
      } else {
        // user role = 1
        user.setRoles([1]).then(() => {
          res.send({ message: "User was registered successfully!" });
        });
      }
    })
    .catch(err => {
      res.status(500).send({ message: err.message });
    });
};

在浏览了提供的前端教程之后,我想我可以将问题缩小到组件Authservice。它有一个名为register的方法:

因为当前用户注册时,您从不发送角色。因此,新用户总是以默认角色结束。如果希望在注册时为用户提供默认角色以外的其他角色,则必须将参数角色添加到axios.post函数中的config对象中。例如:

  register(username, email, password) {
    return axios.post(API_URL + "signup", {
      username,
      email,
      password,
      roles=[ "ROLE_ADMIN" ]
    });
  }

因此,您可以创建另一个注册页面,使用此修改后的注册功能,而不是默认的注册功能。

非常感谢您的回复,这正是我需要知道的
  register(username, email, password) {
    return axios.post(API_URL + "signup", {
      username,
      email,
      password,
      roles=[ "ROLE_ADMIN" ]
    });
  }