当 (is_admin & is_coach) 在用户表中为 true 时,节点如何管理用户角色我想将用户重定向到管理员或指导仪表板?登录代码如下

问题描述

节点如何管理用户角色?当 (is_admin & is_coach) 在用户表中为 true 时,我想将用户重定向管理员或教练仪表板?登录代码在下面?

我使用 Nodejs 作为后端,使用 Reactjs 作为前端和数据库,我使用 MysqL

(这是我的登录代码

exports.signIn = (req,res) => {
  const reqData = req.body;
  checkAccountExistence(reqData)
    .then((userDetails) => {
      if (userDetails.length > 0) {
        checkUserActivation(userDetails[0])
          .then((activeUser) => {
            if (activeUser.length == 1) {
              bcrypt.compare(
                reqData.password.toString(),userDetails[0].password,(error,response) => {
                  if (response) {
                    var token = jwt.sign(
                      { id: userDetails[0].id },config.secret,{
                        expiresIn: 86400,}
                    );
                    res.cookie("userToken",token,{ maxAge: 86400000 });
                    res.send({ loginSuccess: true });
                  } else {
                    res.send({ invalidMessage: "Invalid Email or Password" });
                  }
                }
              );
            } else {
              const emailData = userDetails[0];
              const randnum = Math.random().toString(25).substring(2,20);
              updateActivationCode(userDetails[0],randnum)
                .then((response) => {
                  if (response == 1) {
                    emailData.randnum = randnum;
                    emailData.firstname = emailData.first_name;
                    emailData.template = "accountVerification.ejs";
                    generateEmail(emailData)
                      .then((html) => {
                        emailData.html = html;
                        const emailOptions = {
                          from: '"Tester" testmail@zoho.com',to: emailData.email,subject: "Account verification",html: emailData.html,};
                        sendMail(emailOptions);
                        res.send({
                          verifyMessage:
                            "Please check your mail to verify your account first",});
                      })
                      .catch((error) => {
                        res.send(error);
                      });
                  }
                })
                .catch((error) => {
                  console.log(error);
                });
            }
          })
          .catch((err) => {
            console.log(err);
          });
      } else {
        res.send({ invalidMessage: "Invalid Email or Password" });
      }
    })
    .catch((error) => {
      res.status(422).send({
        error: error.errors.map((err) => {
          return {
            attribute: err.path,type: err.type,message: err.message,};
        }),});
    });
};

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)