【问题标题】:User roles: node.js express sequelize react.js用户角色:node.js express sequelize react.js
【发布时间】:2021-04-30 06:44:47
【问题描述】:

我在 bezkoder 上使用本教程来创建用户角色。但是,默认情况下,用户在注册期间被赋予角色:1 [订阅者]。 我对这方面很陌生,所以我不确定要创建两个注册页面需要进行多少更改:一个会自动注册具有角色 1 [订阅者] 的用户,另一个将自动注册具有角色 2 [专家] 的用户。

前端 https://bezkoder.com/react-jwt-auth/

后端 https://bezkoder.com/node-js-jwt-authentication-mysql/

我认为角色在控制器中自动注册为 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 });
    });
};

【问题讨论】:

    标签: node.js reactjs express sequelize.js


    【解决方案1】:

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

      register(username, email, password) {
        return axios.post(API_URL + "signup", {
          username,
          email,
          password
        });
      }
    

    因为目前您从未在用户注册时发送角色。所以新用户总是以默认角色结束。如果您想在注册时给用户另一个角色,而不是默认角色,您必须将参数 roles 添加到 axios.post 函数中的配置对象。比如这样:

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

    因此,您可以创建另一个注册页面,在其中使用此修改后的 register 函数而不是默认函数。

    【讨论】:

    • 非常感谢您的回复,这正是我需要知道的
    猜你喜欢
    • 1970-01-01
    • 2021-09-04
    • 2020-07-27
    • 1970-01-01
    • 2022-09-23
    • 2017-07-17
    • 2019-04-10
    • 2017-02-20
    • 2021-04-07
    相关资源
    最近更新 更多